Я просто хочу скопировать файл «init.rc», который находится в «./int.rc», в android эмулятор API 28 (android 9). Поскольку у меня нет реальных устройств для тестирования , Я не знаю, есть ли разница между эмулятором и реальным устройством. Сначала я использую этот метод :
public static boolean exusecmd(String command) {
String result = "";
Process process = null;
DataOutputStream os = null;
try {
process = Runtime.getRuntime().exec("/system/bin/sh");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + "\n");
os.writeBytes("exit\n");
os.flush();
Log.e("updateFile", "======000==writeSuccess======");
process.waitFor();
} catch (Exception e) {
Log.e("updateFile", "======111=writeError======" + e.toString());
return false;
} finally {
try {
if (os != null) {
os.close();
}
if (process != null) {
process.destroy();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return true;
}
, затем я пробовал это :
public static void shellcommond(){
exusecmd("su");
exusecmd("mount -o rw,remount /");
exusecmd("chmod 777 /");
exusecmd("cp /init.rc /sdcard/init.rc");
exusecmd("touch /sdcard/test.txt");}
, но только последнюю строку
Приложение было подписано системной подписью и было отправлено / system И android:sharedUserId="android.uid.system"
был добавлен в androidmanifest. xml