一加7Pro为PixelExperience系统编译kernelsu

前言

之前写了一篇文章为一加七Pro(LineageOs17.1 4.14内核版本)编译KernelSu,最近想换个系统玩玩,因为我发现我自己编译的系统总是被某些APP风控了,比如淘宝有些活动就参与不了。

正好可以试试PixelExperience,顺便为PixelExperience编译一个配套的kernelsu,没有root的安卓系统是没有灵魂的。

环境准备

我发现编译PixelExperience的文档和Lineageos的文档不能说是一模一样,也是师出同门。那么所需的环境估计也是一样的,就用之前编译Lineageos的WSL Ubuntu20系统。

环境安装请看:wsl2-ubuntu20编译Lineage17(Android10),如果你不想在安装一遍环境,可以使用我备份的WSL包,在WIndows导入就可以使用了。

这个WSL的远程连接也配置好了,使用VNC连接的软件地址是localhost:5900,密码是kanade,VNC软件我用的是Realvnc

另外,WSL导入命令是:wsl --import Ubuntu20.04 D:\WSL Ubuntu-20.04.tar ,其中Ubuntu20.04是wsl的名称,D:\WSL是导入的安装路径。后台回复wsl获取WSL备份的tar包下载地址

创建虚拟磁盘

先创建一个vhd虚拟磁盘来存放源码,虽然wsl可以直接访问Windows上的文件,但如果把源码放WIndows上,会出现一些奇怪的问题,比如权限问题。

而且编译完,源码一般也不会使用,就放在Vhd磁盘里存着就行。

这里我用Hyper-v管理器来创建,格式选VHDX,类型选固定大小,磁盘空间至少是300G。

创建完成后附加到wsl里,附加命令:wsl --mount --bare --vhd D:\pixelp.vhdx,然后给这个磁盘分区格式化在挂载就可以用了。

分区和格式化我懒得记命令,一般都用图形化软件GParted,界面上按提示点几下就可以了。挂载的话:mount /dev/sde1 ~/pixelp,后面的目录要先创建一下

下载源码

PixelExperience我没找到国内源,所以需要配置git的科学代理,IP为宿主机的ip,因为我代理是运行在Windows上的

git config --global http.proxy 'socks5://172.23.96.1:10808'

git config --global https.proxy 'socks5://172.23.96.1:10808'

先使用脚本下载下所需的环境:

cd ~/
git clone https://github.com/akhilnarang/scripts
cd scripts
./setup/android_build_env.sh

配置一下proxychains,也加上代理

vim /etc/proxychains4.conf

开始创建仓库同步源码

mkdir pe

cd pe

proxychains4 repo init -u https://github.com/PixelExperience/manifest -b thirteen-plus

因为我官网下载的安装包是13plus的版本,所以这里下载的分支选thirteen-plus

开始同步源码,这个过程很长。我下载速度30M/s也用了挺久的

proxychains4 repo sync -c -j$(nproc --all) --force-sync --no-clone-bundle --no-tags

下载完成后,就要开始下载内核的源码。如果是其他的手机,只需要这一步下载内核的步骤改一下,将guacamole的代号改成你手机对应的代号

source build/envsetup.sh

lunch aosp_guacamole-eng

开始编译

croot

mka bacon -j$(nproc --all)

我是先编译一遍系统看看有没有什么错误,编译通过之后在添加kernelsu,编译boot.img

内核加入kernelsu

先进入内核源码的目录

cd kernel/oneplus/sm8150

执行脚本自动添加文件补丁到内核

proxychains4 curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -

修改内核参数

看了下PixelExperience的内核配置文件和Lineageos是同一个。都在kernel/oneplus/sm8150/arch/arm64/configs/vendor/sm8150-perf_defconfig,在这个文件最后加上

CONFIG_KPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_KPROBE_EVENTS=y

编译内核

make bootimage

刷入手机

进入fastboot模式,然后将boot.img输入手机即可

fastboot flash boot .\boot.img

如果你怕刷了boot无法开机,可以先fastboot boot .\boot.img临时输入,如果开机正常,再永久刷入

安装管理器

编译的boot文件

如果你也是一加7Pro手机,并且用的PixelExperience13plus的系统,可以直接刷我的这个boot.img。

下载地址:https://www.123pan.com/s/ihEKVv-UJWx.html 提取码:9oSv

如果是其他PixelExperience或Lineageos支持的手机,需要我编译boot.img的,请留言或私聊我,我有时间就一起编译一下。

我只能帮忙编译最新的系统(Lineageos20和PixelExperience13),不然磁盘受不了,一个系统得300G的磁盘大小。

参考

posted @ 2023-11-24 15:27  Python成长路  阅读(181)  评论(0编辑  收藏  举报