0

私はすべてのアプリとそのデータをバックアップおよび復元するroot化された電話用のアプリケーションを開発しています。アプリを開いたときにアプリのデータを/data/ data / {packageName}に復元した後、例外android.database.sqlite.SQLiteReadOnlyDatabaseExceptionでクラッシュします。そのアプリのデータベースファイルを/ data /にコピーしたため、読み取り専用データベースを書き込もうとしました。 data/{packageName}ディレクトリ。

データを復元するために使用するコード:

String packageName = app.getPackageName();
File destinationFile = new File("/data/data/"+packageName);
File sourceFile = new File(Environment.getExternalStorageDirectory()+File.separator+"MyBackup"+File.separator+packageName);

String command = "cp -r "+sourceFile.getAbsolutePath()+File.separator+"* " + destinationFile.getAbsolutePath()+File.separator;
try {
    Runtime.getRuntime().exec(new String[]{"su", command});
} catch (IOException e) {
     e.printStackTrace();
}

誰かが私がどこで間違っているのか教えてもらえますか?

4

1 に答える 1

1

でそれらのファイルとディレクトリの適切な権限と所有者(chownおよび)も設定する必要があると思います。chmod/data/

于 2013-01-28T07:24:41.270 に答える