0

我正在为有根手机开发一个应用程序,它将备份和恢复所有应用程序及其数据。在我打开该应用程序时将任何应用程序的数据恢复到 /data/data/{packageName} 后,它会崩溃并出现异常android.database.sqlite.SQLiteReadOnlyDatabaseException:由于我已将该应用程序的数据库文件复制到 /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 回答