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

参考

  • Build for guacamole - PixelExperience Wiki
  • 如何为非 GKI 内核集成 KernelSU | KernelSU

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/185048.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据分享】2023年我国省市县三级的瞪羚企业数量(免费获取/Excel/Shp格式)

企业是经济活动的参与主体。一个城市的企业数量决定了这个城市的经济发展水平!比如一个城市的金融企业较多,那这个城市的金融产业肯定比较发达;一个城市的制造业企业较多,那这个城市的制造业肯定比较发达。 之前我们给大家分享了…

为什么在Pycharm中使用Pandas画图,却不显示?

问题描述: 在 Pycharm 中使用 Pandas 的 plot() 方法画图,却不显示图像,源代码如下: import pandas as pd import numpy as np# 从文件中读取数据 starbucks pd.read_csv(./file_csv/directory.csv)# 按照国家分组,…

pycharm 创建的django目录和命令行创建的django再使用pycharm打开的目录对比截图 及相关

pytcharm创建django的项目 命令行创建的django 命令行创建项目时 不带路径时 (.venv) D:\gbCode>django-admin startproject gbCode 命令行创建项目时 带路径时 -- 所以如果有目录就指定路径好 (.venv) D:\gbCode>django-admin startproject gbCode d:\gbCode\

k8s集群资源监控工具metrics-server安装

1、下载镜像 docker pull swr.cn-east-2.myhuaweicloud.com/kuboard-dependency/metrics-server:v0.6.22、在任一一个主节点上创建角色,执行下面语句 kubectl create clusterrolebinding kube-proxy-cluster-admin --clusterrolecluster-admin --usersystem:kube-…

案例精选|聚铭网络流量智能分析审计系统加强南京市溧水区人社局信息安全防护能力

一字排开的社保综合服务窗口、实时滚动的数“智”人社大屏、便捷快速的社保卡自助服务机……每位到溧水市民中心人社大厅进行业务办理的市民对高效的社保服务经办效率赞叹不已。 党的二十大报告提出,健全覆盖全民、统筹城乡、公平统一、安全规范、可持续的多层次社…

怎么去掉视频水印?分享三种视频去水印技巧,轻松搞定!

怎么去掉视频水印?在分享视频时,我们常常会遇到因为水印而影响观感的问题,因此,掌握有效的去水印方法显得尤为重要,随着技术的进步,现在有多种方法可以帮助我们去除视频中的水印。 接下来分享三种简单且有效…

2023.11.23 云服务器实现 Spring Boot 项目文件上传并访问

环境介绍 云服务器:京东云云服务器系统: CentOS 7.9JDK 版本:1.8Spring Boot 版本:2.7.17 具体步骤 步骤一 首先我们得先创建一个 Spring Boot 项目 创建如下目录结构 关于如何创建一个 Spring Boot 项目 请点击下方链接详细了解 …

【公网远程手机Android服务器】安卓Termux搭建Web服务器

🎥 个人主页:深鱼~🔥收录专栏:cpolar🌄欢迎 👍点赞✍评论⭐收藏 目录 概述 1.搭建apache 2.安装cpolar内网穿透 3.公网访问配置 4.固定公网地址 5.添加站点 概述 Termux是一个Android终端仿真应用程…

三菱PLC定时中断应用编程(计数器+比较器)

三菱PLC如何开启定时中断可以查看下面文章链接: PLC定时中断程序应用注意事项(西门子三菱信捷)_plc设置断点之后会怎样_RXXW_Dor的博客-CSDN博客文章浏览阅读2.5k次,点赞5次,收藏6次。首先我们了解下什么是中断。中断(打断的意思),在PLC执行当前程序时,由于系统出现了…

分块矩阵知识点整理:

1.分块方法:横竖线不能拐弯,思想为将矩阵分块看作向量计算 2.标准型 不一定是方的 特殊性:经过分块后会出现单位矩阵和0矩阵 3.分块矩阵的运算: 1.加减乘的运算与向量运算相同 4.分块矩阵求转置: 1.将子块看作普通元素求转置 2…

深入理解数据结构:队列的实现及其应用场景

文章目录 🍂前言🍂队列的基本概念和特性🍂队列的实现方式️🌱顺序队列️🌱链式队列 🍂队列的基本操作及示例代码️🥑创建队列️🥑判空操作️🥑入队操作️🥑出…

java获取服务器配置文件的值

获取服务器配置文件的值 Value("${bpm.minio.bucketName:}")private String minioBarrel;

【python入门篇】函数(6)

这一节将详细介绍Python中函数的用法,包括函数的定义、调用、参数、返回值、作用域等。 函数的概述: Python函数是一种封装了特定任务的可重用代码块。通过将程序分解为更小、更具体的任务,函数提供了一种有效的方式来组织和管理代码&#xf…

Java系列之 String indexOf() 方法

我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 🏷️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…

App Inventor 2 数字转文本

App Inventor 2 是弱语言类型,文本和数字之间不用刻意去转换,之间赋值就可以了。 案例:数字转文本 App Inventor 2 是弱语言类型,同理数字也能直接赋值给文本变量: 更多请参考:App Inventor 2 文本代码块…

【EI会议征稿】第三届电子信息技术国际学术会议(EIT 2024)

The 3rd International Conference on Electronic Information Technology 第三届电子信息技术国际学术会议(EIT 2024) 电子信息工程在我国信息化产业的发展过程中举足轻重,且随着现代社会的发展,航空航天领域、制造业领域和智能…

Ubuntu 设置Nginx开机自启

1.建立自启动服务文件 vim /usr/lib/systemd/system/nginx.service Descriptionnginx - high performance web server Afternetwork.target remote-fs.target nss-lookup.target [Service] Typeforking ExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx…

HTML5+ API 爬坑记录

背景: 有个比较早些使用5开发的项目, 最近两天反馈了一些问题, 解决过程在此记录; 坑1: plus.gallery.pick 选择图片没有进入回调 HTML5 API Reference 在 联想小新 平板电脑上选择相册图片进行上传时, 打开相册瞬间 应用会自动重启, 相册倒是有打开, 不过应用重启了, 导…

C语言算术转换例题

这里写目录标题 例题一题目解析答案 例题二题目解析答案 例题三题目解析答案 例题四方法一解析方法二解析 例题五答案方法一方法二解析 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸&#…

算法笔记:OPTICS 聚类

1 基本介绍 OPTICS(Ordering points to identify the clustering structure)是一基于密度的聚类算法 OPTICS算法是DBSCAN的改进版本 在DBCSAN算法中需要输入两个参数: ϵ 和 MinPts ,选择不同的参数会导致最终聚类的结果千差万别,因此DBCSAN…