2021年7月

联想拯救者电竞手机2 Pro解锁bootloader,刷机root
遇到了有史以来最大的坑。从来没见过。

坑:无法运行fastboot,没反应。
解决办法:
数据线插到侧边的USB口,底下的USB口不行。

1,先获取解锁文件sn.img
需要插入SIM卡24小时,此时去https://www.zui.com/iunlock申请,选择LENOVO手机
2,开启usb debug,然后连接电脑

adb reboot bootloader
fastboot flash unlock sn.img
fastboot oem unlock-go

至此,解锁算是完成了。接下来ROOT。
3,获取boot.img
只存在于全量包里面,OTA包是增量包,没啥鸟用。
但是官方不提供全量包,怎么办?
搜了XDA,得到一个低版本的全量包,https://forum.xda-developers.com/t/android-11-update-chinese-rom-12-5-175-st.4221391/
下载地址:
https://mobile-ota-cdn.lenovo.com/firmware/20211181531284-9946.zip (12.5.175)
然后,在另一个网站,前面我文章提到过,找到海外版的全量包,
https://mirrors.lolinet.com/firmware/lenovo/l70081/ (12.5.XXX)
但是,我不确定,海外版,国内版,还有不同的小版本之间,boot.img 是否有不同。
于是,我把这几个全量包全都下载回来,解压缩,比对boot.img,发现居然是相同的文件。
得出结论,大版本相同的前提下(本例中,全都是12.5),boot.img应该是一样的。
4,patch这个boot.img
adb push boot.img /sdcard/
下载magisk的APP:
https://github.com/topjohnwu/Magisk/releases/download/v23.0/Magisk-v23.0.apk
adb install Magisk-v23.0.apk
然后到手机上,选择boot.img完成修补,修补后的文件默认保存到Download目录下。
adb pull /sdcard/Download/*.img ./
5,获取临时ROOT
adb reboot bootloader
fastboot flash boot new-boot.img(修补后的boot.img文件路径)
fastboot reboot
此时获取到临时root
6,获取永久ROOT
再次在手机上打开Magisk APP。
选择direct install永久性刷入。至此大功告成。

以前写的太罗嗦了。简单点。
frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = password
log_file = ./frps.log
log_level = info
log_max_days = 3
allow_ports = 2000-3000,3001,3003,4000-50000
max_pool_count = 5
max_ports_per_client = 0
tcp_mux = true

frpc.ini

[common]
server_addr = frp.server.com
server_port = 7000

#每个机器的名字不能一样,最好是用“服务名_主机名”,这样好区分。
[ssh_myubuntu]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 62222

sudo vim /lib/systemd/system/frpc.service

[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
# 服务端
#ExecStart=/home/ubuntu/frp/frps -c /home/ubuntu/frp/frps.ini
# 客户端
ExecStart=/home/ubuntu/frp/frpc -c /home/ubuntu/frp/frpc.ini

[Install]
WantedBy=multi-user.target

location / {
        set $flagv2 0;
        if ($http_sec_websocket_version = 13){
            set $flagv2 "${flagv2}1";  
        } 
        if ($http_sec_websocket_key != ""){
            set $flagv2 "${flagv2}1";  
        }
        if ($flagv2 = "011"){
            proxy_pass http://yourvv2;
        }
        if ($flagv2 != "011"){
            proxy_pass https://www.qq.com;
        }
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
        proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;  
    }