我可以使用root/data/data/com.teenchat
到sdcard/download
String comando = "cp -r /data/data/com.teenchat /sdcard/Download";
但当我使用代码粘贴它时,应用程序无法识别数据(虽然它不会关闭)
String comando = "cp -r /sdcard/Download/com.teenchat /data/data";
我可以手动执行这两项任务1)备份2)恢复数据并且工作正常!但是当我尝试通过代码执行任务1并手动执行任务2时,它无法识别。在两种情况下,我都检查了数据的大小是否相同。
以下是我的完整代码供参考 -
//String comando = "cp -r /data/data/com.teenchat /sdcard/Download";
String comando = "cp -r /sdcard/Download/com.teenchat /data/data";
Process suProcess = null;
try {
suProcess = Runtime.getRuntime().exec("su");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
try {
os.writeBytes(comando + "\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
os.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
os.writeBytes("exit\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
os.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try
{
int suProcessRetval = suProcess.waitFor();
if (255 != suProcessRetval)
{
}else
{
}
}
catch (Exception ex)
{
Log.w("Error ejecutando el comando Root", ex);
}
}
}