android 代码修改Hosts文件失败怎么办

天王盖地虎626 发布于 2017/07/03 10:20
阅读 103
收藏 0

下面的代码是修改hosts文件的代码,从调用方法writeFile来看,总是失败,报错位置在标红的地方

从下面代码来看,我明明执行了写权限,为啥还报错”Read-only file system“ 呢?
异常信息是

/system/etc/hosts: open failed: EROFS (Read-only file system)

相关代码

  private void shell(String s) throws IOException {
        Process proc = Runtime.getRuntime().exec("su");
        proc.getOutputStream().write(s.getBytes());
        proc.getOutputStream().flush();
        proc.getOutputStream().close();
    }


     private void writeFile(String str) {
                
        File file = new File("/system/etc/hosts");    
        FileOutputStream fo = null;
        if (file.isFile()) {
            
            try {  
            
                shell(" chmod 777 /system/etc/hosts "); // 修改文件读写权限              
                fo = new FileOutputStream(file);
                fo.write(str.getBytes());

            
            } catch (Exception e) {
                // TODO Auto-generated catch block
                
                e.printStackTrace();
            } finally {
                try {
                    if (null != fo) {
                        fo.flush();
                        fo.close();
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                
                    e.printStackTrace();
                }                            

            }

        }

    }
 

 

加载中
返回顶部
顶部