在build.prop中更改模型

时间:2014-05-20 11:48:14

标签: android

我会以编程方式更改模型的名称,并且我具有root权限,但我的代码不能很好地工作,并且不理解问题。 第二个toast给我这条消息“Error2:File / system / build.prop / ro.product.model open failed:ENOTDIR(不是目录)” 代码:

 try {
    process = Runtime.getRuntime().exec("su");
    os = new DataOutputStream(process.getOutputStream());
    os.writeBytes("mount -o remount rw /system/\n"); 
    os.writeBytes("exit\n");
    os.flush();
    process.waitFor();
    } catch (Exception e) {

        Toast.makeText(getApplicationContext(), "Error1: " + e.getMessage(), Toast.LENGTH_LONG).show();
    }

    File file=new File("/system/build.prop/ro.product.model");

    try {
    fis = new FileInputStream(file);
    String content = "xx";
    byte[] input = new byte[fis.available()];
    while (fis.read(input) != -1) {}
    content += new String(input);
    DataOutputStream outstream= new DataOutputStream(new FileOutputStream(file,false));
    String body = content;
    outstream.write(body.getBytes());
    outstream.close();
    } catch (Exception e) {

        Toast.makeText(getApplicationContext(), "Error2: " + e.getMessage(), Toast.LENGTH_LONG).show();
    }

2 个答案:

答案 0 :(得分:0)

将行FileInputStream fis = openFileInput("/system/build.prop/ro.product.model");替换为:

FileInputStream fis = FileInputStream(file);

出于安全原因openFileInput不允许接受文件名中的分隔符。但您可以在路径中创建包含分隔符的文件,并从文件中创建FileImputStream。

答案 1 :(得分:0)

你的porgram还有另一个问题,模型名称不在名为“/system/build.prop/ro.product.model”的文件中,而是由“ro.product.model =”行定义在文件“/system/build.prop”中。编辑此文件时要小心!!