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
手动实现的sehPixel6Pro EADB环境搭建
Loading...
Lynnette177
Lynnette177
建议开着梯子访问站点。图片是直接从Notion获取的,不开梯子容易看不见图片。
Latest posts
tersafe
2025-8-13
iOS典型反调反越狱app分析
2025-7-28
RPC:遍历android的所有java实例
2025-7-17
写一个Android Hook小框架
2025-6-23
一些macos常用软件破解记录
2025-6-22
iOS网易新闻登录算法逆向
2025-6-22
Announcement
🎉2024.6.9 上线🎉