android12 settingprovider cat乱码

问题

应用上报他直接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;
      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值