常见问题
关于日志开关控制的说明(Android)
有关日志开关的地方有三处,分别为:客户端初始化配置、客户端存储的云指令开关配置、手动开关。三者优先级:客户端初始化配置 < 客户端存储的云指令开关配置 < 手动开关。
(1) 客户端 SDK 初始化时的设置
ColorLogConfig colorLogConfig = ColorLogConfig.builder(this)
.setColorLogEnabled(true) //初始化日志开关设置
.build();
TMFBaseConfig config = new TMFBaseConfig.Builder()
.colorLogConfig(colorLogConfig)
.build();
TMFBase.init(this, config);
(2) 登录TMF 控制台,单击日志开关 > 新建任务,下发的云指令中所配置的日志开关。
(3) 客户端 SDK 日志能力 API 类中的手动开关
ColorLogger.openLog(); //打开日志
ColorLogger.closeLog();//关闭日志
日志加解密操作流程
- 根据 github 环境配置说明,完成环境配置。
- 执行 python gen_key.py 如果能生成成功则表示配置成功,若不成功可根据报错查阅下方寻找解决方法。
- python gen_key.py 会生成 private key 和 public key,把二者设置进 decode_mars_crypt_log_file.py(该文件可在第1步链接中获取),文件中 PRIV_KEY 字段和 PUB_KEY 字段,同时,Android 工程中需将 public key 通过 ColorLogConfig 的 setColorLogKey 接口传入 TMF_ColorLog-xxx.aar 使用。
- 下载 xxx.xlog 文件,执行 python decode_mars_crypt_log_file.py xxx.xlog
- 多出来的 xxx.xlog.log 文件即为解密后的文件。
执行解密可能遇到的问题及解决方案
Exception: Couldn't load OpenSSL lib
解决方法:
(1)搜索并下载: libeay32.dll (分32位和64位,根据你系统选择)
(2)放入 系统盘:system/system32 目录
WindowsError: [Error 193] %1 不是有效的 Win32
完整的错误日志:
File "gen_key.py", line 3, in import pyelliptic File "build\bdist.win-amd64\egg\pyelliptic_init_.py", line 43, in File "build\bdist.win-amd64\egg\pyelliptic\openssl.py", line 528, in File "build\bdist.win-amd64\egg\pyelliptic\openssl.py", line 67, in init File "C:\Python27\lib\ctypes_init_.py", line 362, in init self._handle = _dlopen(self._name, mode) WindowsError: [Error 193] %1 不是有效的 Win32
解决方法:
(1)找到这行代码
File "C:\Python27\lib\ctypes\_init_.py", line 362, in init
。(2)在
self._handle = _dlopen(self._name, mode)
这行代码前添加打印语句print "self._name is %s" % self._name
。(3)保存,重新执行python gen_key.py。
(4)然后看输出,将看到
C:\Windows\System32\libeay32.dll
。(5)由此得到系统没有获取我添加到系统盘的 libeay32.dll 库,所以将自己的 libeay32.dll 替换即可。
AttributeError: function 'EVP_CIPHER_CTX_reset' not found
解决方法:
pip install pyelliptic==1.5.7