1.开启开发者模式
链接点击手机系统版本号,开启开发者模式
开启开发者模式中的允许OEM解锁
2 下载Magisk
github 地址
1 | https://github.com/topjohnwu/Magisk |
3.小米手机秒解锁BL
1.下载unlocktool,,网址,www.unlocktool.net
2.咸鱼购买临时账号
3.手机开启开发者模式,开启OEM解锁 ,usb链接手机
4.登录进入unlocktool,点击右侧CONFIG,下载安装libusb 驱动
选择上面的芯片品牌MEDIATEK
点击,左下方的菜单 PERM | UNLOCKV BL
5.先关机,再同时按开机键+音量减,进入fastboot 模式,这时候在右侧的COM接口能看到手机
6.再同时按 开机键+音量加 ,看到右侧开始有输出就是在解锁了
4.下载红米10A 线刷包
1 | https://xiaomirom.com/download/redmi-9a-9i-9at-9a-sport-10a-10a-sport-dandelion-stable-V12.5.21.0.RCDCNXM/#china-fastboot |
从中获取images文件夹中获取文件boot.img
5.修补boot.img
上传boot.img到手机
• 打开 Magisk,点击“安装” > “选择并修补一个文件”,选择 boot.img;
• 修补后,会生成一个 magisk_patched-xxxx.img 文件。
6.刷入修补后的镜像
将magisk_patched-29000_SH1FS.img 文件上传到电脑
手机进入 Fastboot 模式 ,
在电脑终端,进入放置img文件的文件夹,然后运行:
1 | fastboot flash boot magisk_patched-29000_SH1FS.img |
再重启验证是否安装成功
1 | fastboot reboot |
打开magsik ,显示了版本号,则是root成功
开机状态重启进入fastboot
1 | adb reboot bootloader |
双参登录测试
1 | e5589f47a5e84a1c873dbce83709d863-4752898956----dfb02eeb2c5b81d0eae4045f7dcf8300----ANDROID_52942458fbd55fbd', requestBody 'NOT SUPPORT'----DFP40694923474658F6D91DE87B2A1CC9FD2F8147EDED4A782A3C3A4700E9C3D----Cg9rdWFpc2hvdS5hcGkuc3QSoAEkYdJJ38uIUsKhAqsx-ItlDXlTJIi9gVxuJLIvDgOPmQmI6MyDjf8iyu3TxTbuvACOESZ7Zz1tIAKIf97e4Pfk9WNP6dOJUcZ8eK-4vmrnQ8WixfWZsS--O0SbopRPrWPRgzihcWFzW-7QgjANxuG6xhnrzMj_Tp7sa_s0iC5uaiAUbWlI5Pku1ZQAXQiqi-kTurxLWnTZXdsdqqEU8FC1GhJmQmJkX-pJEqgjQbtJv1UuVkwiICWRwU_RQ8MZ44YXX4PAAcGnzenga_0yx7hWzBom6szaKAUwAQ |
安装jadx
1 | brew install jadx |
mac上打开jadx图形界面
1 | jadx-gui |
安装apktool
1 | brew install apktool |
反编译
1 | apktool d douyin-19-8-0.apk -o dy_src -r |
修改smail 代码后再打包
1 | apktool b dy_src -o douyin_mod.apk -r |
添加java到环境变量
1 | vim ~/.zshrc |
生成临时的keystore
1 |
|
使用临时的key 给apk签名
1 | /opt/homebrew/opt/openjdk/bin/jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 \ |
对apk对齐优化(可选)
1 | zipalign -v 4 douyin_mod_signed.apk douyin_mod_aligned.apk |
frida
安装frida
1 | pip install frida-tools |
查询cpu类型
1 | adb shell getprop ro.product.cpu.abi |
红米10A的cpu架构是armeabi-v7a
github下载frida-server
1 | https://github.com/frida/frida/releases |
解压
1 | xz -d frida-server-17.0.5-android-arm.xz |
推送到手机
1 | adb push frida-server-17.0.5-android-arm /data/local/tmp/frida-server |
直接adb shell “/data/local/tmp/frida-server &” 会没有权限
在安装了magisk的情况下,使用adbshell 切换到root用户
1 | abd shell |
上面的已root运行frida-server的方式会问题,会报错
修改为安装magisk的模块,直接将frida注入
firda-inject的magisk的模块下载地址
1 | https://github.com/ViRb3/magisk-frida/releases |
确认 Frida-Server 在设备上正常运行(可跳过 frida-ps):
1 | adb forward tcp:27042 tcp:27042 |
1 | frida -U -n com.ss.android.ugc.aweme -l bypass_ssl.js |
bypass_ssl.js内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Java.perform(function () {
var X509TrustManager = Java.use('javax.net.ssl.X509TrustManager');
var SSLContext = Java.use('javax.net.ssl.SSLContext');
var TrustManager = Java.registerClass({
name: 'dev.asd.trust.TrustManager',
implements: [X509TrustManager],
methods: {
checkClientTrusted: function (chain, authType) {},
checkServerTrusted: function (chain, authType) {},
getAcceptedIssuers: function () { return []; }
}
});
var TrustManagers = [TrustManager.$new()];
var SSLContextInit = SSLContext.init.overload('[Ljavax.net.ssl.KeyManager;', '[Ljavax.net.ssl.TrustManager;', 'java.security.SecureRandom');
SSLContextInit.implementation = function (keyManager, trustManager, secureRandom) {
console.log('Bypassing SSL Pinning');
SSLContextInit.call(this, keyManager, TrustManagers, secureRandom);
};
});
### 失败,电脑上无法链接手机上frida-server
1 | Java.perform(function () { |
下载别人修改好的libsscronet.so文件
上传覆盖到抖音
so文件百度网盘地址
https://link.juejin.cn/?target=https%3A%2F%2Fpan.baidu.com%2Fs%2F1BuL8vtIyd34b0y60jY3qXg
提取码1005
先上传到临时目录
1 |
|
查看抖音的存储路径
1 | adb shell pm path com.ss.android.ugc.aweme |
package:/data/app/~~6GFRK59nqVa2mAt8HxQ3tQ==/com.ss.android.ugc.aweme-LYq5WsM6oXhCSXuDutJpvw==/base.apk
再使用root 覆盖原始的so文件
1 |
|
重启抖音
1 | adb shell am force-stop com.ss.android.ugc.aweme |