Android13 xml配置文件乱码问题解决
前言
Android13 中发现cat 某个的配置文件 是 乱码!
这个跟普通的中文乱码问题不同,因为拉到电脑查看也是乱码!
Android 查看 Sttings Global 属性情况:
cat /data/system/users/0/settings_global.xml
//乱码。。。
需要root 权限才能正常cat 到上面的文件内容!
其他几个setitngs 文件也是会乱码,pull到电脑中查看,也是乱码!
Android 新版本中应该还有其他xml也是会乱码。
但是Android13 热点保存的xml配置文件并没有乱码:
/data/misc/apexdata/com.android.wifi/WifiConfigStoreSoftAp.xml
原因
因为Android13 保存的 某些xml 配置文件使用的一种二进制的格式!
解决方法
(1)使用应用代码读取该配置文件,然后重新保存成UTF-8 格式文件
(2)修改系统默认保存配置文件的属性:
setprop persist.sys.binary_xml false
修改这个属性后,系统配置文件默认就是 ASCII 码格式文件。
下面就是串口中,输入命令前后,xml 配置文件的格式情况。
未设置前:
console:/data/system/users/0 # file settings_global.xml
settings_global.xml: Android Binary XML v0
console:/data/system/users/0 #
设置属性:
setprop persist.sys.binary_xml false
设置后,重启:
console:/data/system/users/0 # file settings_global.xml
settings_global.xml: ASCII text
console:/data/system/users/0 #
重启后发现,正常 cat settings_global.xml 是不会乱码的!
具体是哪些文件会默认保存成 Android Binary XML ,这个暂时不清楚,有需要的可以进一步进行研究。