Android SU权限IOException

时间:2012-01-06 12:09:24

标签: java android root

if (DownloadManager.STATUS_SUCCESSFUL == c
.getInt(columnIndex)) {
    mProgress.setProgress(70);
    mStatus.setText(R.string.status_backup);
    File dl_path = new File(DownloadManager.COLUMN_LOCAL_URI);
    File og_path = new File("/system/app/app.apk");
    String bu_path = "/sdcard/asdfgsd/backup/app.apk";
    Process p;  
    try {  
        // Preform su to get root privledges
        p = Runtime.getRuntime().exec("su");   
        // Attempt to write a file to a root-only  
        DataOutputStream os = new DataOutputStream(p.getOutputStream());  
        os.writeBytes("echo \"Do I have root?\" >/system/sd/temporary.txt\n");  
        // Close the terminal  
        os.writeBytes("exit\n");  
        os.flush();  
        try {  
            p.waitFor();
            if (p.exitValue() != 255) {  
                // Trying to remount system partition in read-write mode
                p.getOutputStream().write("mount -o r,remount -t yaffs2 /dev/block/mtdblock3 /system".getBytes());
                if (og_path.renameTo(new File(bu_path))) {
                    mProgress.setProgress(90);
                    mStatus.setText(R.string.status_install);
                    dl_path.renameTo(og_path);  } else {
                    mStatus.setText(R.string.status_error_1);
                }
            }
        } catch (InterruptedException e) {  
             mStatus.setText(R.string.status_error_2);  
        }  
    } catch (IOException e) {  
         mStatus.setText(R.string.status_error_3);  
    }   
}

所以这是一段代码,应该将/ system / app中的应用程序替换为备份文件夹,然后它应该将通过DM API下载的副本替换为/ system / app。一切都很完美,直到应用程序开始要求SU权限。正如您所看到的,我在异常的情况下放置了一些错误字符串以使调试更容易,并且看起来它有一个IO异常(status_error_3)。我的代码出了什么问题?

UPD:SU成功请求授予我的应用程序权限,因此它应该可以正常工作,但事实并非如此。

提前致谢!

0 个答案:

没有答案