type
status
date
slug
summary
tags
category
icon
password
首先参考Pixel6Pro安卓内核源码编译这篇文章,确保能编译出内核。此文章作为后续。

注意目前我所编译的5.10.189内核 该驱动大部分功能都不可用!简单的修复见这篇文章.

1.从GitHub下载源码

下载后移动到aosp文件夹内的driver目录中
 

2.适配

首先设置一个比较大的swap分区

第一步:禁用/swapfile

sudo swapoff /swapfile

第二步:修改swap 空间的大小(16G)

sudo dd if=/dev/zero of=/swapfile bs=2G count=8

第三步:设置文件为swap file类型

sudo mkswap /swapfile

第四步:启用swap.img

sudo swapon /swapfile
 
aosp/drivers/Makefile 中最后添加下面的两行,-m代表以内核模块方式编译。原因是查看rwProcMem33目录内的makefile会发现,它默认就是-m作为模块编译的。原因是作者在最新版本里用到了__this_module
__this_module是一个struct module变量,代表当前模块,跟current有几分相似,只有-m作为模块的才能使用。
notion image
添加动态加载支持,默认是开启的,检查即可
notion image
• 在编译rwProcMem33中硬件断点的内核模块时,由于内核编译时会将警告视为错误导致编译内核停止,但我们不希望修改整个makefile忽略所有警告导致的错误,因为上游给我们的代码肯定是干净的。所以我们要修改aosp/drivers/rwProcMem33/hwBreakpointProcModule/hwBreakpointProc/Makefile,增添一个ccflags-y := -w,这参数仅对当前模块有效,来忽视这一个模块的warning。加上一个-w参数
修改 aosp/drivers/rwProcMem33/ver_control.h ,启用页表计算物理地址,并且选择内核5.10.43
前者默认开启,后者根据我们在谷歌官网看到的版本号
notion image
notion image
notion image
修改硬件断点驱动的版本控制文件rwProcMem33/hwBreakpointProcModule/hwBreakpointProc/ver_control.h,添加当前版本号。
notion image

3.编译

直接BUILD_AOSP_KERNEL=1 ./build_slider.sh开始编译,发现产生两个报错。
有报错
  • 文件:aosp/drivers/rwProcMem33/phy_mem.h
  • 第 175 行和第 176 行需要修复。
两个print的第二个参数都是错的,疑似多写了pgd_val
notion image
 
按照原来的命令编译,报错module list
notion image
执行报错内的命令,再来一次
notion image
abi验证报错。

更新symbol_list

无论你是哪一个分支 都要按照下方教程更新一次
按照官网更新abi的指令,执行
具体参考https://source.android.com/docs/core/architecture/kernel/howto-abi-monitor#update-abi
跟安卓版本没关系,而在于是否使用build.sh编译内核,显然我们是用的build_slider.sh,所以在这里就使用以上的命令。
如果是新版本的,用的kleaf编译的,没使用.sh,则使用
速度非常 非常之慢 很久都在这 等候。这里需要一个逆天之大的swap分区不然会kill。实测17G物理内存+2G swap会kill。实测17G+20G能编译过。
notion image
会两次出现LTO vmlinux.o。一直等到第二次编译完成。
notion image
notion image
需要重新commit一下,因为有两个文件被修改了。
commit后,使用一开始的编译命令再执行一
随后可以再运行一次update脚本
notion image
这个编译脚本的名称应该根据你本来使用的sh来。我一开始用的是build_slider,并且我修改的内容都在aosp文件夹内,所以我也运行update_symbol_list_slider_aosp.sh即可。
notion image
运行完这个脚本,应该会提示使用这一条命令进行内核编译
这是比编译abi要快的多的多的方式。
随后输出文件将在out/mixed/dist中,即使有报错也会输出boot.img和驱动KO文件。
notion image
和内核.img输出的同一个目录有俩KO,分别是hwBreakpointProc1.ko和rwProcMem37.ko,这俩我们要push到手机
notion image

4.上手

两个ko文件push到手机,并且刷入magisk修补后的新内核之后,insmod直接加载
notion image
接下来要编译一下测试工具。先编译HWBPClient,运行在电脑上直接编译就可以
notion image
接下来编译Server。Server的编译需要NDK,用Android Studio安装。
在SDK manager→ SDK Tools里面
notion image
装好后设置环境变量
notion image
在Server项目目录下jni文件夹内执行编译命令
notion image
编译后的文件在rwProcMem33\hwBreakpointProcModule\testHwBpServer\libs中,选择对应手机架构的ELF,push到手机中运行即可 注意拷贝到/data/local/tmp下,chmod 777运行,如果在sdcard运行会报错权限不足。
手动输入手机的ip和默认端口3370连接
notion image
notion image
Relate Posts
写一个Android Hook小框架
Lazy loaded image
小红书shield Chomper模拟
Lazy loaded image
iOS网易新闻登录算法逆向
Lazy loaded image
iOS典型反调反越狱app分析
Lazy loaded image
iOS免越狱hook与patch框架和免越狱dylib注入打包
Lazy loaded image
iOS逆向——某跑步软件的文件上传
Lazy loaded image
Pixel6Pro EADB环境搭建对rwProcMem33的尝试修补
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 上线🎉