1、设备信息:
2、编译设置编译主机是WSL2下的ubuntu18.04,用户为root,在/root/目录下进行编译 1>首先安装开发环境相关包 sudo apt install -y bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev unzip openjdk-8-jdk language-pack-zh-hans 2>获取k40内核源码 官方的版本是Anroid11(R)的内核源码,如果你手机还是anroid 11,可以试试官方的
我手机已经是Android12(S)版本了,所以这里选择了第三方的rebase git clone https://github.com/Laulan56/android_kernel_xiaomi_sm8250.git xm_sm8250 我这里是直接下载的zip包,没用git克隆 3>下载跨平台编译链工具 需要两个工具,gcc和clang,gcc是google官方的gcc,clang是Snapdragon LLVM Compiler Tools(sdclang) 谷歌官方的地址我没下载成功, gcc是在这个仓库下载的jonascardoso / toolchain_aarch64_travis — Bitbucket sdclang 下载地址,选择8.0.6版本的Snapdragon LLVM Compiler - Tools - Qualcomm Developer Network 下载后然后解压,整理下目录4> 把kernelSu加入内核 在/root/kernel_src/xm_sm8250目录下执行命令
5> 开启内核的KPROBES支持 在arch/arm64/configs/alioth_defconfig文件末尾加上以下内容 CONFIG_KPROBES=y 3、开始编译在/root/kernel_src/xm_sm8250目录下建立一个编译脚本build.sh,并添加执行权限
执行编译脚本,开始编译 ./build.sh
4、打包内核并刷入1> 首先解包原来的boot镜像(可以自己提取,也可以去刷机包里找boot.img) 进入/root/boot_ksu目录下执行一下命令
2> 替换kernel cp ../kernel_src/xm_sm8250/out/arch/arm64/boot/Image ./kernel 3> 重新打包boot
4> 刷入boot_ksu.img镜像就好了 这里就跟刷magisk修补的boot一个操作 fastboot flash boot boot_ksu.img 除了通过fastboot,也可以用anykernel3打包用twrp卡刷刷入,个人感觉fastboot更快些 |
|