问题
应用上报他直接cat /data/system/users/0/settings_system.xml 是乱码,查找到并非是乱码,是因为xml文件可以使用明文,可以使用二进制文件,总结如下:
问题原因
经过查找,里面的内容并非是乱码,只是被写成了二进制文件,如果想修改成明文,可以使用
adb shell
setprop persist.sys.binary_xml false
注意,可能需要下一次设置才能生效,所有我将这个设置加到了ROM里,修改(device/rockchip/rk3588/rk3588_box/rk3588_box.mk)测试是可用的。具体代码位置在这里
frameworks/base/core/java/android/util/Xml.java
public static @NonNull TypedXmlSerializer resolveSerializer(@NonNull OutputStream out)
throws IOException {
final TypedXmlSerializer xml;
if (ENABLE_BINARY_DEFAULT) {
xml = newBinarySerializer();
} else {
xml = newFastSerializer();
}
xml.setOutput(out, StandardCharsets.UTF_8.name());
return xml;
}