一加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的磁盤大小。

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章