Я пытаюсь записать файл, сгенерированный моим приложением, в системный раздел. Поскольку я не могу создать FileOutputStream внутри своего приложения, я создаю файл в каталоге данных моего приложения, исправляю разрешения и затем перемещаю его в системный раздел.
На данный момент приведенный ниже код пропускает перезаписываемое перемонтирование /system - в целях тестирования я успешно выполнил этот шаг через adb remount - поэтому это не должно быть проблемой.
Приложение также успешно получает root-права.
Но код ниже не работает. Он только создает файл, но не перемещает его в системный раздел. В чем моя ошибка?
FileOutputStream out = openFileOutput("myfile.test", MODE_WORLD_READABLE);
File f = getFileStreamPath("myfile.test");
writeDataToOutputStream(out);
out.close();
String filename = f.getAbsolutePath();
Runtime r = Runtime.getRuntime();
r.exec("su");
// Waiting here some seconds does not make any difference
r.exec(new String[] { "chown", "root.root", filename });
r.exec(new String[] { "chmod", "644", filename });
r.exec(new String[] { "mv", filename, "/system/myfile.test" });