0%

安装unidbg-fetch-qsign并在mirai-console中使用

环境:

相信当你看到这篇文章的时候已经部署好了mirai,并且版本为最新稳定版v2.15.0,那么……

检查一下环境有没有问题

  1. 更新一下
1
2
sudo apt update
sudo apt upgrade
  1. 确认Java版本大于等于1.8

不装Java能用mirai吗?

1
java -version
  1. 确认已部署2.15.0及以上版本的mirai

安装fix-protocol-version插件,确认登录协议版本

  1. 关闭正在运行的mirai

  2. 下载fix-protocol-version,然后放入plugins文件夹

1
2
cd mirai/plugins
wget https://github.com/cssxsh/fix-protocol-version/releases/download/v1.9.9/fix-protocol-version-1.9.9.mirai2.jar
  1. 启动mirai
1
2
cd ..
./mcl
  1. 在线同步协议
1
protocol sync ANDROID_PHONE

在线同步协议

  1. 确认当前登录协议版本
1
protocol info

确认当前登录协议版本

这样,咱们就知道了当前的登录协议是什么版本

部署unidbg-fetch-qsign

  1. 获取unidbg-fetch-qsign
1
2
cd ~
wget https://github.com/fuqiuluo/unidbg-fetch-qsign/releases/download/1.1.6/unidbg-fetch-qsign-1.1.6.zip
  1. 解压 unidbg-fetch-qsign-1.1.6.zip
1
unzip unidbg-fetch-qsign-1.1.6.zip

目录结构

  1. 配置

之前已经获知了我们的登录协议版本为8.9.63,所以我们配置8.9.63

编辑 ./unidbg-fetch-qsign-1.1.6/txlib/8.9.63/config.json

1
nano unidbg-fetch-qsign-1.1.6/txlib/8.9.63/config.json

默认的config.json长这样↓

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"server": {
"host": "0.0.0.0",
"port": 8080
},
"key": "114514",
"auto_register": false,
"protocol": {
"qua": "V1_AND_SQ_8.9.63_4194_YYB_D",
"version": "8.9.63",
"code": "4194"
},
"unidbg": {
"dynarmic": false,
"unicorn": true,
"debug": false
}
}

大概有以下几个项目需要设置

key value
host 能够访问该服务的IP地址;0.0.0.0表示可以从任何位置访问该服务
port 开放的端口;注意不要与正在使用的端口重复
key 注册实例的密钥
dynarmic 一个开源的动态ARM指令集模拟器(大概能提高效率?)

编辑好config.json之后按下Ctrl+X离开,按下Y进行保存,最后按下Enter确认替换原文件

保存

  1. 检查端口是否被占用
1
sudo netstat -lntp

端口列表

如果之前在config.json中配置的端口在输出的列表中出现了,就换个端口

启动!

示例命令:

1
/home/yourame/unidbg-fetch-qsign-1.1.6/bin/unidbg-fetch-qsign --basePath=/home/yourname/unidbg-fetch-qsign-1.1.6/txlib/8.9.63/
参数 说明
/home/yourname/unidbg-fetch-qsign-1.1.6/bin/unidbg-fetch-qsign 此目录指向unidbg-fetch-qsign的启动文件
–basePath=… 指向之前配置的config.json所在的文件夹

你已经完全理解了启动命令的含义,该启动了

启动成功

当出现23:50:23.781 [DefaultDispatcher-worker-1] INFO ktor.application - Responding at http://127.0.0.1:9080时,启动就成功了

将unidbg-fetch-qsign注册为服务以实现后台运行或开机启动

当然,想要实现这两个功能并不一定要使用我在此提供的方法

使用Ctrl+C关闭刚刚启动的unidbg-fetch-qsign,然后创建服务

新建 /etc/systemd/system/qsign.service

1
sudo nano /etc/systemd/system/qsign.service

在文件中写入一下内容

1
2
3
4
5
6
7
8
9
[Unit]
Description=unidbg-fetch-qsign
After=network.target

[Service]
ExecStart=/home/yourame/unidbg-fetch-qsign-1.1.6/bin/unidbg-fetch-qsign --basePath=/home/yourname/unidbg-fetch-qsign-1.1.6/txlib/8.9.63/

[Install]
WantedBy=multi-user.target

大概有以下几个项目需要设置

key value
Description 简介
ExecStart 写入之前运行成功的命令

编辑好qsign.service之后按下Ctrl+X离开,按下Y进行保存,最后按下Enter确认替换原文件

qsign.service

在此插入一点简单的systemctl命令说明。更多的可以在此查看

命令 效果
systemctl daemon-reload 重新加载 systemd 守护进程的配置
systemctl start PATTERN... 启动(activate)指定的已加载单元(无法启动未加载的单元)。
systemctl stop PATTERN... 停止(deactivate)指定的单元
systemctl restart PATTERN... 重新启动指定的单元。
systemctl status [PATTERN...|PID...] 如果指定了单元,那么显示指定单元的运行时状态信息,以及这些单元最近的日志数据。 如果指定了PID,那么显示指定PID所属单元的运行时状态信息,以及这些单元最近的日志数据。
systemctl enable NAME..., enable PATH... 启用指定的单元或单元实例(多数时候相当于将这些单元设为”开机时自动启动”或”插入某个硬件时自动启动”)。
systemctl disable NAME... 停用指定的单元或单元实例(多数时候相当于撤销这些单元的”开机时自动启动”以及”插入某个硬件时自动启动”)。

刚才我们已经编辑了一个用于unidbg-fetch-qsign的qsign.service

如果要后台运行

1
2
sudo systemctl daemon-reload
sudo systemctl start qsign.service

检查一下是否已经成功启动

1
sudo systemctl status qsign.service

qsign.service

可以看到已经成功启动了

想要停止unidbg-fetch-qsign,只需要执行sudo systemctl stop qsign.service就行了

如果还想让它开机自动启动

1
sudo systemctl enable qsign.service

然后你又不想让它开机自动启动了

1
sudo systemctl disable qsign.service

配置fix-protocol-version

fix-protocol-version的配置文件在默认情况下会生成在mcl根目录,名称为KFCFactory.json

1
2
cd mirai
nano KFCFactory.json

默认的config.json长这样↓

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"0.0.0": {
"base_url": "http://127.0.0.1:8080",
"type": "fuqiuluo/unidbg-fetch-qsign",
"key": "114514"
},
"0.1.0": {
"base_url": "http://127.0.0.1:8888",
"type": "kiliokuara/magic-signer-guide",
"server_identity_key": "vivo50",
"authorization_key": "kfc"
},
"8.8.88": {
"base_url": "http://127.0.0.1:80",
"type": "TLV544Provider"
}
}

大概有以下几个项目需要设置

key value
base_url 还记得刚才config.json填的端口吗
key 还记得刚才config.json填的密钥吗

按照默认文件中的格式编辑

KFCFactory.json

编辑好KFCFactory.json之后按下Ctrl+X离开,按下Y进行保存,最后按下Enter确认替换原文件

终于,该启动bot了

1
2
cd mirai
./mcl

期间提示需要进行短信验证,进行验证即可

成功

好!Bot活了!-

参考