添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

因为一加七的内核版本是4.14,所以想使用kernelsu,需要自己将kernelsu编译到内核里。

我使用的系统是:LineageOS17.1,对于之后的lineage版本同样适用,只是拉取的源代码不一样。刷机教程请看: wsl2-ubuntu20编译Lineage17(Android10)

教程里是编译LineageOs系统的流程,不过跟aosp不一样的是,lineage编译系统时会同时编译内核。所以可以修改内核文件,直接编译整个系统。(脱离系统我单独编译内核的代码失败了,一堆C语言的报错,我解决不了,有的说gcc这些编译工具需要用lineage源码里的,我就是用的源码,也是一样。可是是内核配置文件的问题,使用 make menuconfig 生成的配置文件和 原先使用的配置文件多了很多参数,使用 make 原先的配置文件 也会添加很多参数,不清楚原因)

参考教程: 如何为非 GKI 内核集成 KernelSU

以下提到的目录都是以lineage源码根目录为当前目录,假设源码目录是 /home/A/Lineage ,目录是 kernel/oneplus/sm8150 ,则绝对路径是 /home/A/Lineage/kernel/oneplus/sm8150

假设你已经单独编译系统成功,并且编译的刷机包刷入系统也是成功运行的。那就可以进行下一步,将kernelsu的代码加入到内核源码中

一加七Pro的内核代码在 kernel/oneplus/sm8150 ,cd进到这个目录。先下载kernelsu的源码,注意科学,比如用proxychain
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -

下载完成后需要修改内核参数来开启 kprobe ,一加七Pro的内核参数配置文件可以在 device/oneplus/guacamole/BoardConfig.mk 这个文件里看到,参数是 TARGET_KERNEL_CONFIG
在这里插入图片描述
可以看到路径是 vendor/sm8150-perf_defconfig ,用tree命令看一下全路径是啥。图里的 trle 是我对 alias trle='tree -NCfhl' 做的一个别名,参数太多记不住
在这里插入图片描述
打开这个文件 kernel/oneplus/sm8150/arch/arm64/configs/vendor/sm8150-perf_defconfig ,就在最后一行加入三个参数:

CONFIG_KPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_KPROBE_EVENTS=y
如何修改内核参数

这一段我说下怎么修改内核参数,在编译kernelsu并不会用到,可以跳过。因为在编译kernelsu时只需要将上面三个参数加到内核配置文件就可以。如果你想修改其他参数时,可能会有帮助。

比如我看到一些文章说,开启内核参数让手机原生支持docker,就需要开启很多的参数。但是我测试了参数是开启了,内核编译通不过了,还是一堆C语言的错误,改了一个又来一个,最后放弃了

以开启kprobe为例,配置参数是CONFIG_KPROBES。在kernel/oneplus/sm8150目录使用make menuconfig,然后按下/,输入CONFIG_KPROBES来查找(可以不加前面的CONFIG_),结果如图所示
在这里插入图片描述
搜出来多个结果,一般参数名没错的话,都是第一个结果。

  1. Symbol: 前面是参数名,后面的中括号是值开启的状态,有三种: n(关闭)、y(开启)和m(作为模块开启)
  2. Prompt: 在make menuconfig配置界面叫什么名字,找到这个名字,按空格键让它前面的中括号里变成*就是开启了
  3. Location: 该选项所在位置。-->是表示层级,看下面的解释
  4. Depends on: 所需的依赖。需要先让所有依赖都变成y或m才能在Location指定的位置下找到Prompt
  5. Selects: 附加选项。如果选择这个,会一起选择。这个不用管,会自己加上

下图,如果后面带有-->说明还有下一级,最下面选择Select(默认就是)按回车可以进去,选择Exit按回车则是返回上一级或者退出,只需要按照一级一级找下去,空格开启就行。这里有个点需要注意,最后一层可能不是以这种层级来显示。可能是以缩进来显示。如果你发现有的选项明明还有下一层,确进不去。仔细看看下面的选项是不是缩进了一个tab
在这里插入图片描述

因为上面有个MODULES依赖没有勾选,所以你在General setup下是看不到有Kprobes这个选项的。先按下/搜索MODULES找一下在哪个路径下然后勾选,之后在进入General setup下就能看到Kprobes勾选即可。移到Save然后Exit退出就会在当前目录下生成一个.config文件,将该文件覆盖掉原先的配置文件sm8150-perf_defconfig

跟编译系统一样,修改内核后,最好是在源码根目录执行make clean清理一下,不然会出现一些奇怪的错误

export LC_ALL=C
source build/envsetup.sh
breakfast guacamole
brunch guacamole

之后就可以看到舒适的一幕
在这里插入图片描述
接着输入手机,安装
kernelsu管理器 (最下面有个apk文件)

在这里插入图片描述
如果不想编译整个系统,可以使用make bootimage或者make kernel

教程里是编译LineageOs系统的流程,不过跟aosp不一样的是,lineage编译系统时会同时编译内核。(脱离系统我单独编译内核的代码失败了,一堆C语言的报错,我解决不了,有的说gcc这些编译工具需要用lineage源码里的,我就是用的源码,也是一样)但是我测试了参数是开启了,内核编译通不过了,还是一堆C语言的错误,改了一个又来一个,最后放弃了。我使用的系统是:LineageOS17.1,对于之后的lineage版本同样适用,只是拉取的源代码不一样。跟编译系统一样,修改内核后,最好是在源码根目录执行。
KernelSU 使用教程 KernelSUA Kernel based root solution for Android项目地址:https://gitcode.com/gh_mirrors/ke/KernelSU 项目介绍 KernelSU 是一个基于内核的 Android 根解决方案。它通过在 Linux 内核下运行,提供对用户空间应用程序的更多控制。KernelSU 允许自定义 su ...
上次尝试将小米开源的内核Xiaomi_Kernel_OpenSource升级到最新版本,花了几天时间解决lineageos编译报错 最后总算成功编译出镜像文件了 twrp刷入镜像在启动界面无限循环,失败。 还需要继续看下原理及排错方式,希望明年可以用上自己的lineageos(包括内核更新,提取最新vendor,devices) 转载于:https://www.cnbl...
探索KernelSU:一款强大的Linux内核安全更新工具 KernelSUA Kernel based root solution for Android项目地址:https://gitcode.com/gh_mirrors/ke/KernelSU 项目简介 是一个由开发者Tiann 创建的开源项目,旨在简化和自动化Linux内核的安全更新过程。对于那些需要频繁维护和更新系统内核以确保安全性,...
首先下载编译过程中的编译依赖软件包,此步非常重要。 内核编译依赖软件包主要有一下几个: libncurses5-dev :主要是在make menuconfig时能够出现图形化的选择菜单所依赖的的库 libssl-dev : openssl的依赖包 build-essential:建立debian软件包的工具 openssl :涉及到系
Fanuc NC Guide Pro 17.1是一种先进的数控编程和操作软件,用于Fanuc数控系统。它为操作人员提供了直观的界面和简化的操作流程,使其能够高效地编写和操作数控程序。 这个软件具有多种功能和特点。首先,它提供了全面的编程功能,包括通用程序编程、宏变量编辑和数学计算等。它还支持多种编程语言和代码格式,如ISO、G代码和M代码,使用户能够根据需要选择最适合的编程方式。 其次,Fanuc NC Guide Pro 17.1具有强大的模拟功能。用户可以通过虚拟仿真环境来验证和调试程序,以确保在实际生产中的正确性。这大大减少了错误和故障的产生,提高了生产效率和质量。 此外,该软件还具有可靠的监控和诊断功能。它可以实时监测数控系统的运行状态,包括轴运动、刀具位置和报警信息等。并且还能提供详细的报告和诊断结果,帮助用户及时发现和解决问题。 Fanuc NC Guide Pro 17.1还提供了丰富的教学材料和培训资源。用户可以通过视频教程、在线帮助和实时交互等方式获得更多的学习和培训支持。这使得初学者能够快速上手并掌握数控编程和操作的技巧。 综上所述,Fanuc NC Guide Pro 17.1是一款功能强大、易于操作的数控编程和操作软件。它通过提供全面的编程功能、强大的模拟仿真和可靠的监控诊断等功能,帮助用户提高生产效率和质量。同时,它还提供了丰富的教学和培训资源,使用户能够更快地掌握数控编程和操作的技能。
一种节奏: 你好,看了您的微信关注公众号的文章采集后我尝试用您的代码运行,可是微信闪退,我可以确定的是微信是安装了您提供的版本,并且在设置》关于微信中确认了版本,但是是由高版本安装低版本的。 main.py显示一行注入后的dll基址: 0x7ffa1adf0000 之后就退出了