1. 读取外部存储权限
日志记录到外部存储,需要权限:
<!-- 读写文件权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
android 6.0之后,权限在清单文件AndroidManifest.xml里申明没有作用了,需要动态获取,
private val permissions = arrayOf(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
)
这里我用的 easypermissions 。
但是解决权限问题后,还是没有日志文件,
在AndroidManifest.xml文件application标签下添加:
android:requestLegacyExternalStorage="true"
终于生成了日志文件。
2. 解析.xlog文件
下载Tencent mars源码,打开mars/log/crypt/decode_mars_nocrypt_log_file.py
python decode_mars_nocrypt_log_file.py /Users/*****/Downloads/tassel_inspector_20210713.xlog
运行过程中遇到zstandard包找不到的问题,因为mars用的是python2,GitHub上下载的zstandard包支支持python3,所以需要用pip2安装zstandard。
安装pip2:
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
sudo python2 get-pip.py
安装好了输入pip2 -v 验证版本。
pip2安装zstandard
pip2 install zstandard
安装完成后,解析.xlog日志成功,生成.xlog.log文件。
还有一些关于gen_key.py的内容,不知道怎么用。www.jianshu.com/p/eddc459eb…
一点发现:
在Android Q及以上版本,访问应用专属文件不需要权限,但在Android Q以下还是需要权限的。