一加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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023-11-28 事业-代号s-shein招商发布会-记录与分析

摘要: 既然花费了如此多的精力来处理这场发布会, 那么必然是有深刻的原因来采取如此行动。 需要对其中的细节做深入的研究, 以作为更为深刻的反思, 以及未来的规划. 商业中的运气因素的把控: 运气, 这确实是主要因素, 要主动操控运气那么如何操控运气呢?见更多的人&#xff…

Xilinx SDK获取代码运行时间

Xilinx SDK获取代码运行时间 一、API 头文件 “xtime_l.h”函数XTime_GetTime(XTime * xtime),获取周期数时钟频率宏 COUNTS_PER_SECOND 二、使用 #include "xtime_l.h"int main(){XTime tBegin, tEnd;unsigned int t_us;unsigned long long cycles;XTime_GetTim…

Django项目部署本地windows IIS(详细版)和static文件设置(页面样式正常显示)

目录 必要条件: 一、下载并启用wfastcgi 二、window安装 IIS功能 三、IIS管理器中添加网站 1、复制项目 2、复制wfastcgi.py文件 3、创建文件web.config 4、添加网站,填写信息 5、启动fastcgi程序 6、修改进程标识 四、static文件设置和正确显…

Ubuntu20.04 Kimera Semantic运行记录

Ubuntu20.04 Kimera Semantic运行记录 以下基本为官方教程,有部分修改 依赖 sudo apt-get install python3-wstool python3-catkin-tools protobuf-compiler autoconf sudo apt-get install ros-noetic-cmake-modulessudo apt-get install ros-noetic-image-pro…

【2023传智杯】第六届传智杯程序设计挑战赛AB组-DEF题解题分析详解【JavaPythonC++解题笔记】

本文仅为【2023传智杯】第六届传智杯程序设计挑战赛-题目解题分析详解的解题个人笔记,个人解题分析记录。 本文包含:第六届传智杯程序设计挑战赛题目、解题思路分析、解题代码、解题代码详解 文章目录 一.前言更新进度记录二.比赛题目(AB俩组)D题题目-abbE题题目 -kotori和…

Appium 2 和 Appium Inspector 环境部署

前言 自 2022 年 1 月 1 日起,Appium 核心团队不再维护 Appium 1.x。官方支持的平台驱动程序的所有最新版本均不兼容 Appium 1.x,需要 Appium 2 才能运行。 Appium 2是一个自动化移动应用程序的开源工具,它带来了以下重要改进:  …

人工智能原理复习--知识表示(一)

文章目录 上一篇知识概述命题逻辑谓词逻辑谓词逻辑的应用 下一篇 上一篇 人工智能原理复习–绪论 知识概述 知识就是人类认识自然界的精神产物,是人类进行智能活动的基础。 是经过加工的信息,包括事实、信念和启发式规则。 分类: 按作用可…

【数值计算方法(黄明游)】常微分方程初值问题的数值积分法:欧拉方法(向前Euler)【理论到程序】

文章目录 一、数值积分法1. 一般步骤2. 数值方法 二、欧拉方法(Euler Method)1. 向前欧拉法(前向欧拉法)a. 基本理论b. 典例解析c. 算法实现 常微分方程初值问题的数值积分法是一种通过数值方法求解给定初始条件下的常微分方程&am…

【C++初阶】五、类和对象(日期类的完善、流运算符重载函数、const成员、“”取地址运算符重载)

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【C初阶】四、类和对象 (构造函数、析构函数、拷贝构造函数、赋值运算符重载函数)-CSDN博客 一 . 日期类的完善 此次日期类的成员函数,采用声明…

flutter的TextField参数、案例整理(下)

TextField 简述 下面整理了一些TextField常用参数的具体使用方式,留作记录。 decoration让输入框样式自定义 构造函数 const InputDecoration({this.icon, // 左边添加一个 Widgetthis.labelText, // 顶部描述字符串,如果输入框成为焦点&#xff0c…

Android中的多进程

在Android中也可以像pc一样开启多进程,这在android的编程中通常是比较少见的,以为在一个app基本上都是单进程工作就已经足够了,有一些特殊的场景,我们需要用多进程来做一些额外的工作,比如下载工作等。 在Android的An…

Elasticsearch底层原理分析——新建、索引文档

es版本 8.1.0 重要概念回顾 Elasticsearch Node的角色 与下文流程相关的角色介绍: Node Roles配置主要功能说明masternode.roles: [ master ]有资格参与选举成为master节点,从而进行集群范围的管理工作,如创建或删除索引、跟踪哪些节点是…

【MyBatisPlus主键生成策略】

文章目录 什么是主键生成策略?MyBatis Plus 中的主键生成策略如何在 MyBatis Plus 中配置主键生成策略 什么是主键生成策略? 在数据库中,每一行数据都需要一个唯一的标识符,这就是主键。主键生成策略决定了如何为新插入的行生成这…

Postman进阶功能实战演练

Postman除了前面介绍的一些功能,还有其他一些小功能在日常接口测试或许用得上。今天,我们就来盘点一下,如下所示: 1.数据驱动 想要批量执行接口用例,我们一般会将对应的接口用例放在同一个Collection中,然…

一种新的基于物理的AlGaN/GaN HFET紧凑模型

标题:A new physics-based compact model for AlGaN/GaN HFETs (IEEE MTT-S International Microwave Symposium) 摘要 摘要 - 针对AlGaN/GaN HFET,提出了一种无拟合参数的物理解析模型。对于非饱和操作,建立了两个接入区和栅极下方I-V特性的…

消息队列进阶-1.消息队列的应用场景与选型

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理🔥如果感觉博主的文章还不错的话,请&#x1f44…

函数声明与函数表达式

函数声明 一个标准的函数声明&#xff0c;由关键字function 、函数名、形参和代码块组成。 有名字的函数又叫具名函数。 举个例子&#xff1a; function quack(num) { for (var i 0; i < num; i) {console.log("Quack!")} } quack(3)函数表达式 函数没有名称…

使用opencv将sRGB格式的图片转换为DCI-P3格式【sRGB】【DCI-P3】

要将图像从 sRGB 格式转换为 DCI-P3 格式&#xff0c;您需要使用适当的线性转换矩阵。在 OpenCV 中&#xff0c;这通常涉及使用色彩转换函数&#xff0c;但 OpenCV 默认情况下不直接支持 sRGB 到 DCI-P3 的转换。因此&#xff0c;您需要手动计算并应用转换矩阵。 转换矩阵取决…

解决OpenAI unable to load history chatgpt

解决过程 打开浏览器控制台&#xff0c;发现有报错--unable to load history no access token when trying to use authheader&#xff0c;再慢慢检查&#xff0c;发现openAI session返回有 {"detail":"Too many requests in 1 hour. Try again later."}…

skywalking告警qq邮箱发送

首先开启发送接收qq邮箱的权限 开启之后&#xff0c;会让你发送信息&#xff0c;按着一系列操作&#xff0c;获得password &#xff08;授权码&#xff08;例如&#xff0c;qq开启SMTP授权码&#xff0c;qq授权码16位&#xff09;&#xff09; <!-- mail邮箱-->…