私はすべてのアプリとそのデータをバックアップおよび復元する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();
}
誰かが私がどこで間違っているのか教えてもらえますか?