Mars xlog踩坑记录

2,112 阅读1分钟

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以下还是需要权限的。