我会以编程方式更改模型的名称,并且我具有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();
}
答案 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”中。编辑此文件时要小心!!