Я столкнулся с странным поведением на Android 4.4. ниже команда отлично работает на платформе Android Jelly Bean коренится устройства:Команда cp не работает на Android 4.4
Process process = Runtime.getRuntime().exec("su");
DataOutputStream dos = new DataOutputStream(process.getOutputStream());
// path is a folder saved on sdcard
dos.writeBytes("cp -a " + path + " " + "/data/data" + " \n");
dos.flush();
process.waitFor() return 0 mean Ok
Однако на Android 4.4 укоренены устройства, вышеперечисленные команды не работают. process.waitFor() return 1 означает, что где-то есть ошибка.
Я замечаю, что при запуске на Android-устройстве, основанном на железе Bean, разрешение для файлов: rwxr-x. На Android 4.4 укоренены, они: rwxrwx--
Я искал эту проблему, но пока не нашел никакого результата. Спасибо. :)
UPDATE: Я могу скопировать данные из папки данных/данных с помощью команды cp в папку sdcard.
Почему бы просто не использовать 'su -c cp ....' в вашем 'exec'? – ElefantPhace
Фактически, он выполняет не только команду cp, но и команду с командой. – Paul
Оберните его с помощью блока catch catch – ElefantPhace