Tôi đã có một ứng dụng có nghĩa vụ phải sử dụng một số lệnh shell để sao chép tệp từ sdcard sang/system/media /. Nó sẽ yêu cầu root, và tôi đang thử nghiệm trên một thiết bị bắt nguồn từ. Tôi đang sử dụng runtimes để thực thi các lệnh shell, nhưng nó không hoạt động. Đây là những gì tôi đã có cho runtimes tôiChạy lệnh Shell mặc dù mã java trên Android?
public void RunAsRoot{String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};{
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
for (String tmpCmd : commands) {
os.writeBytes(tmpCmd+"\n");
}
os.writeBytes("exit\n");
os.flush();
}
Nhưng logcat của tôi chỉ thấy hai người bọn họ không nhận được từ chối
07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh)
07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh
07-30 03:14:11.152: WARN/su(3594): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.182: WARN/su(3595): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.202: WARN/su(3596): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.242: DEBUG/su(3597): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh
Hai cái nhìn là sysrw và sysro lệnh, tuy nhiên ứng dụng vẫn yêu cầu quyền root khi tôi kích hoạt mã này. Tôi mới làm việc với các công cụ gốc và tôi dường như không thể tìm ra cách để làm việc này.
tôi có thể lấy dự án đang hoạt động của mẫu này không? –
Điều này không có tác dụng đối với tôi và tôi không nhận được bất kỳ ngoại lệ nào của FileNotFound hoặc bất kỳ thứ gì trong Java. Ngoài ra, SuperSU chặn yêu cầu gốc và tôi có thể cấp nó để tôi biết rằng 'getRuntime()' đang hoạt động. Vì lý do nào đó, nó sẽ không cho phép tôi thao tác các tập tin trong thư mục '/ system/media'. – anon58192932
Ah có vẻ như sysrw và sysro là những người không quen biết. – anon58192932