type
status
date
slug
summary
tags
category
icon
password

从谷歌拉取源码编译

写在前面:解锁AVB!!!!

刷自己编译的内核务必要解锁BL,解锁AVB。
谷歌tensor芯片有一个计数器,刷错次数太多永久变砖。所以一定要先解锁,先解锁,先解锁!!!
二者都会导致手机恢复出厂设置,最好拿到就开。
BL不用赘述,开启OEM之后,fastboot flash unlock即可。
解锁AVB:
提取线刷包中的vbmeta.img(位置同boot.img)在bootloader下刷写注意,在完成刷写后将会进入安全模式,提示系统以损坏,需要格式化系统以完成校验的禁用,所以建议拿到手机后立马关闭,省的以后关闭需要初始化而犯难。
恢复方法
原理:
查看FASTBOOT源码,可以发现其禁用验证的方法就是在vbmeta.img 偏移120的位置以小端序的方式读一个32bit的值,将其与1或运算以设置g_disable_verity ,与0x02之后设置g_disable_verification
也就是如果关闭两个的情况下此处值为(0011) = 3 。
Magisk免手动关闭验证刷入boot也是patch的这个位置。但magisk并不修改vbmeta.img本身,而是在boot.img中做了一些手脚让手机启动的时候加载boot.img中的魔改vbmeta.img。
所以如何判断是否已经真的关闭了,只要看一下vbmeta
通过dd命令读出vbmeta.img 查看120偏移位置的值如果为3即为关闭了。
notion image
因此对于联发科等手机来说,无需解锁bl就可以用量产工具刷机的,都可以直接用量产工具提取vbmeta.img,手动修改这个位置为3,之后用量产工具刷回去,就可以刷自定义的patched_boot.img了。
 

注意先安装依赖 不然后续可能导致找不到头文件

1.repo换源

问题是,自己别装repo了,下载这玩意要么./运行,要么直接放到Path里,直接就是repo命令了。
随后可以直接repo init之类的

更新

repo的运行过程中会尝试访问官方的git源更新自己,如果想使用tuna的镜像源进行更新,可以将如下内容复制到~/.bashrc

2.repo init

注意一定要看英文网站,中文网站更新缓慢信息错误。
notion image
如图,记住branches,和GKI Kernel版本。
 
新建一个工作目录
别急着同步仓库,这manifest下下来里面还是谷歌的网址,压根连不上
同步仓库
同步完没有的目录就是用不到。如果要用到的没有说明要用到的是错的,重新看教程吧。

3. 更新vendor ramdisk/Update the vendor ramdisk

从线刷包里面提取出来xxxx.zip,解压出来(和提取boot.img在一块的地方),有个vendor_boot.img
解包这个就能得到ramdisk
拷贝到对应目录
notion image
如图,解包出来的文件时ramdisk_,把它拷贝到工作目录下,prebuilts后面这个img的位置。替换。

4.编译

notion image
按照官方的说法来讲,pixel6和pro似乎也得用kleaf,实则是在放屁。刚我们刚看的那个表最新版本也不过android13-5.10 ,只要build_slider.sh就可以了。
直接在工作目录./build_slider.sh就可以编译
注意这样编译是使用了一些预编译的东西,来加快编译的速度,如果自己修改了某些东西,这样编译出来的东西反而和没改一样,不行。
BUILD_AOSP_KERNEL=1 ./build_slider.sh
这样就可以设置,从工作目录/aosp目录里的源码来编译。因为我们修改源码都是在aosp/目录里面修改的

5.内核修补启用CONFIG_BPF_KPROBE_OVERRIDE

只要修改配置文件,就可以改变这些CONFIG预设的开启/关闭
首先我们是直接使用了build_slider.sh 进行编译的,这里面加载了配置文件,nano看一下就可以知道用到的是哪一个配置文件。
notion image
aosp/build.config.gki.aarch64
用配置工具进行配置
前面的CONFIG里面就写我们从nano看到的配置 后面是使用了config.sh这个配置工具,menuconfig是图形界面的配置。
按/之后,可以输入要修改的配置的名称,就能看到它依赖的东西,以及它所在的位置
notion image
确保这些全都是=y
exit,直接回车/随便输入一个文件名 退出这个配置工具。注意命令行输出。
notion image
可以看到这个配置工具,其实就是去修改了这个文件的内容而已。nano看一下内容,搜索
notion image
可见已经打开。
去aosp/目录,使用git commit提交一下(不用push),避免脏内核。这里配图是已经提交过的,如果是红色字就git add一下文件,然后commit。
notion image
如果不在git commit之后编译,则git 会在内核版本字符串中附加一个“dirty”标志。这个标志表示当前源码树不是一个干净的状态,存在未提交的更改。例如:

6.编译结果

按照我们上文所说的命令,注意一定要有这个环境变量AOSP这个写成1,才能把我们刚才在aosp文件夹做出来的修改给编译进去。
KernelSU不支持eadb开发,这里编译出来的内核只开了上面一个功能,没修补root。拿手机magisk修补一下root,刷入即可。
输出的结果存在于out/mixed/dist之中,只要boot.img,直接修补并刷入就可以。
notion image
 
notion image
Relate Posts
写一个Android Hook小框架
Lazy loaded image
一加11 内核、ROM爆改+脱壳机 LineageOS 22.2 Android 15
Lazy loaded image
小红书shield Chomper模拟
Lazy loaded image
iOS网易新闻登录算法逆向
Lazy loaded image
iOS典型反调反越狱app分析
Lazy loaded image
iOS免越狱hook与patch框架和免越狱dylib注入打包
Lazy loaded image
手动实现的sehPixel6Pro EADB环境搭建
Loading...
Lynnette177
Lynnette177
建议开着梯子访问站点。图片是直接从Notion获取的,不开梯子容易看不见图片。
Latest posts
写一个Android Hook小框架
2025-6-23
一些macos常用软件破解记录
2025-6-22
iOS典型反调反越狱app分析
2025-6-22
iOS网易新闻登录算法逆向
2025-6-22
小红书shield Chomper模拟
2025-6-22
一加11 内核、ROM爆改+脱壳机 LineageOS 22.2 Android 15
2025-6-22
Announcement
🎉2024.6.9 上线🎉