4

/ data/data内のフォルダをSDカードにコピーしようとすると問題が発生します。

私は自分の電話をroot化しています。

次のコマンドを使用して、アプリでスーパーユーザー権限をリクエストします。

Runtime.getRuntime().exec("su");

私はFileUtilsApacheからファイル/フォルダーをコピーするために使用しています。

私が発見したのは、フォルダのアクセス許可を手動で変更するREADと、/ data/dataからSDcardにコピーできるということです。

/ data / dataRW内のすべてのフォルダーのアクセス許可を再帰的に変更してフォルダーの読み取りと書き込みを行う方法はありますか?

試しましchmodたが、うまくいきません。

Runtime.getRuntime().exec("chmod 777 /data/data");

バックアッププログラムを実行したいのですが、/ data / data内のいくつかのフォルダーを読み取り、SDカードのフォルダーに書き込みたいと思います。

次に、SDカードのフォルダーから読み取ってこのフォルダーを復元し、/ data/dataに書き込みます。

私を手伝ってくれますか?

4

1 に答える 1

10

最後に私はそれを手に入れました!

cp コマンドで SuperUser プロセスを使用して、ファイルとフォルダーをコピーします。

お役に立てば幸いです。

String comando = "cp -r /data/data/sourcefolder /sdcard/targetfolder";
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
os.writeBytes(comando + "\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
try
{
 int suProcessRetval = suProcess.waitFor();
 if (255 != suProcessRetval)
 {
  // Acceso Root concedido
  retval = true;
 }else
 {
  // Acceso Root denegado
  retval = false;
 }
}
catch (Exception ex)
{
 Log.w("Error ejecutando el comando Root", ex);
}

このフォーラムのすべての人々と、あなたが提供するすべての助けに感謝します!!

于 2012-06-07T09:22:56.687 に答える