该项目源自Github外国大佬
项目链接:
GitHub - chiteroman/FrameworkPatch: Modify framework.jar to build on system level a valid certificate chain
在此声明,本教程也依托于Github项目上的教程和其他人发的教程,但后者这篇教程好像被原作者删除了。我也找不到了,无法提供相关信息,若原作者看到,请联系我补充。
PS:
原项目自带教程,但是只有英文版教程,并且教程详尽程度对我这样的小白不是很友好
所以写了这篇小白向的教程
大佬or有安卓开发经验的师傅可以直接看Github原项目
对于已解锁BL的手机,这个项目通过对手机根目录下/system/framework/framework.jar
这个文件进行修改来过掉BL锁状态检测
如果仅利用项目自带的keybox,可以过掉非硬件检测or密钥检测的BL锁状态验证,对付大部分软件,是没有问题的,而且目前有BL锁检测的软件其实很少。
如果你有谷歌下发的keybox,那么利用该项目,你可以近乎完美的过掉BL锁状态检测。
注意,对TEE损坏
的手机没有效果!!!例如OPPO/一加等品牌手机,解锁BL就会使TEE假死。
本教程只有前者,就是教如何使用该项目。
我也不知道如何向谷歌申请下发keybox(我还是一个无安卓开发经验的小白)
目前,有些安卓游戏是存在检测BL状态的
以此为依据在设备上使用不同严格程度的检测方案
之后,或许会有更多的软件对BL锁状态进行检测
故,还是有一些研究价值
所需设备和工具:
部分所需工具:
百度网盘
有FrameworkPatcherGO,模块模板,密钥认证APP
其他工具请自行准备
该教程内容不需要电脑就可以实现
Magisk模块模板我会提供附件(非本人制作)
该项目有风险,请做好救砖的准备!!!
该项目有风险,请做好救砖的准备!!!
该项目有风险,请做好救砖的准备!!!
第一张图为安装前,第二张图为安装后(使用项目自带证书,故会显示来自AOSP的根证书,非完美隐藏)
使用Termux执行
大量参考该文章CSDN链接(嘿,就是Copy)
如果之后想在手机上利用Termux编译APK项目的,推荐观看下
请科学上网
MT管理器打开/data/user/0/com.termux/files/home/
创建文件,名字是.bashrc
填入以下内容
Termux执行如下命令
然后彻底关闭Termux,重新打开。
继续
由于我们只需要编译,故执行第三条命令即可
接下来,我们下载arm版本的sdk工具(google编译的安卓sdk没有arm版本 )
git项目
注意科学上网
这里需要科学上网
并且,执行所需时间较长,耐心等待
最后,这里执行完了,还不算完
会有报错,请勿担心
执行后,你会看到如下报错
不急,执行以下命令替换aapt2
接下里继续编译
我们打开/data/user/0/com.termux/files/home/
就可以看到有一个dex文件,留着备用
从Framework Patcher Go
GitHub链接上下载模块
MT管理器打开zip
将classes.dex
添加到zip中的
/META-INF/com/google/android/magisk/dex/
文件夹下
然后Magisk刷入模块
它会自动修改系统自带的framework.jar
中的dex
然后以面具模块的形式替换系统原来的framework.jar
PS:过程中需要按音量上下键的
注意,注意,注意
前面都是按音量上键
但到了最后
你看到
这两行英语后,请按音量下键
等待刷完
请提前做好救砖准备
如TWRP,音量键救砖模块等等
如果最后按音量下键后
是会卡开机页面的
则救砖
然后继续刷入模块
但在最后选择按音量上键
如果正常开机
那么到这里就结束了
但如果还是无法开机
那就只能手动修改framework.jar
中的dex
请看接下来的教程
文件路径:/system/framework/framework.jar
复制文件到某个路径下
不要直接修改系统路径下的jar
MT管理器打开jar
查看
——Dex编辑器++
——全选
接下来
在方法的末尾附近应该有如下几行代码:
类似结构,但寄存器的值可能是不一样的
如图
我们在return-object XX
前加入
将 XX
替换为对应的值
如图
保存返回
可以看到有两个结果
我们先点开第一个
如图
存在类似代码
在方法末尾return
之前添加以下代码:
将 XX
替换为寄存器。
如图
保存,看第二个搜索结果
如图
看到和刚刚不同
有p1,p2,p3
我们还是和第一个一样
选择绿色高亮文本为context
的那一行对应的寄存器
在方法末尾return
之前添加以下代码:
将 XX
替换为寄存器
如图
保存返回
结果有很多
我们只看ApplicationPackageManager
类下的第一个
如图
在方法末尾return
之前添加以下代码:
如寄存器有不同,请自行更改,和之前一样就行
如图
保存返回
保存并退出
在压缩文件中更新
找到我们之前编译的dex
如图
根据framework.jar
中dex的数量n
个
重命名编译好的dex为classes[n+1].dex
然后添加到jar
内
如图
保存返回
找到Magisk模块模板Frist-framework-modify
注意最开始,选择带Frist
的
将修改后的framework.jar
添加到压缩包/system/framework/
下
然后利用面具刷入,重启
能开机,结束
不能开机
选择不带Frist
的framework-modify
模板
将修改后的framework.jar
添加到压缩包/system/framework/
下
然后利用面具刷入,重启
带Frist和不带的区别:
其实就和Framework Patch Go模块一样
带Frist的模块和Go模块最后按音量下键的不会执行下列代码
而不带Frist和Go模块最后按音量上键的会执行
如果刷入后还是无法正常开机
只能先救砖
再向项目作者提交issue了
本篇文章基本上是对原项目作者的教程进行翻译,简单化,和补充
希望未来可以写出更高质量的文章
在看雪的第一篇文章Over
未来待续
sed
-i
's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@'
$PREFIX
/etc/apt/sources
.list
sed
-i
's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@'
$PREFIX
/etc/apt/sources
.list.d
/game
.list
sed
-i
's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@'
$PREFIX
/etc/apt/sources
.list.d
/science
.list
pkg update
sed
-i
's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@'
$PREFIX
/etc/apt/sources
.list
sed
-i
's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@'
$PREFIX
/etc/apt/sources
.list.d
/game
.list
sed
-i
's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@'
$PREFIX
/etc/apt/sources
.list.d
/science
.list
pkg update
pkg
install
git -y
pkg
install
openssh -y
pkg
install
openjdk-17 -y
pkg
install
git -y
pkg
install
openssh -y
pkg
install
openjdk-17 -y
curl -O https:
//googledownloads
.cn
/android/repository/commandlinetools-linux-11076708_latest
.zip
ANDROID_HOME=~
/android/sdk
mkdir
-p $ANDROID_HOME
/latest
unzip `
ls
|
grep
"commandlinetools-linux.*_latest.zip"
` -d $ANDROID_HOME
mv
$ANDROID_HOME
/cmdline-tools/
* $ANDROID_HOME
/latest
mv
$ANDROID_HOME
/latest
$ANDROID_HOME
/cmdline-tools
curl -O https:
//googledownloads
.cn
/android/repository/commandlinetools-linux-11076708_latest
.zip
ANDROID_HOME=~
/android/sdk
mkdir
-p $ANDROID_HOME
/latest
unzip `
ls
|
grep
"commandlinetools-linux.*_latest.zip"
` -d $ANDROID_HOME
mv
$ANDROID_HOME
/cmdline-tools/
* $ANDROID_HOME
/latest
mv
$ANDROID_HOME
/latest
$ANDROID_HOME
/cmdline-tools
echo
"用户:"
$(
whoami
)
if
pgrep -x
"sshd"
>
/dev/null
then
echo
else
sshd
echo
"自动启动sshd"
fi
export
ANDROID_HOME=~
/android/sdk
export
PATH=$ANDROID_HOME
/cmdline-tools/latest/bin
:$PATH
echo
"用户:"
$(
whoami
)
if
pgrep -x
"sshd"
>
/dev/null
then
echo
else
sshd
echo
"自动启动sshd"
fi
export
ANDROID_HOME=~
/android/sdk
export
PATH=$ANDROID_HOME
/cmdline-tools/latest/bin
:$PATH
cd
~
source
.bashrc
sdkmanager --
install
"build-tools;34.0.0"
sdkmanager --
install
"build-tools;34.0.0"
cd
~
curl -LJO https:
//github
.com
/lzhiyong/android-sdk-tools/releases/download/34
.0.3
/android-sdk-tools-static-aarch64
.zip
unzip android-sdk-tools-static-aarch64.zip -d .
/armtools
mkdir
-p ~
/android/sdk/platform-tools
cp
-p .
/armtools/build-tools/
* ~
/android/sdk/build-tools/34
.0.0
cp
-p .
/armtools/platform-tools/
* ~
/android/sdk/platform-tools
cd
~
curl -LJO https:
//github
.com
/lzhiyong/android-sdk-tools/releases/download/34
.0.3
/android-sdk-tools-static-aarch64
.zip
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!