• 主页
  • 归档
  • 软件
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 软件

给OPPO Reno6移植kernelSU

2023-05-10

KernelSU简介

什么是 KernelSU?

KernelSU 是 Android GKI 设备的 root 解决方案,它工作在内核模式,并直接在内核空间中为用户空间应用程序授予 root 权限

功能

KernelSU 的主要特点是它是基于内核的。 KernelSU 运行在内核空间, 所以它可以提供我们以前从未有过的内核接口。 例如,我们可以在内核模式下为任何进程添加硬件断点;我们可以在任何进程的物理内存中访问,而无人知晓;我们可以在内核空间拦截任何系统调用; 等等。

KernelSU 还提供了一个基于 overlayfs 的模块系统,允许您加载自定义插件到系统中。它还提供了一种修改 /system 分区中文件的机制。

构建支持kerbelSU的内核(使用官方内核源码)

配置环境和编译链

执行

1
$ sudo apt-get install libncurses5-dev libncurses-dev libssl-dev device-tree-compiler bc cpio lib32ncurses5-dev lib32z1 build-essential binutils bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev git

安装所需依赖

执行

1
2
3
$ git clone https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9 aarch64-linux-android-4.9 --depth=1
git clone https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.9 arm-linux-androideabi-4.9 --depth=1
wget https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/heads/android12-release/clang-r383902.tar.gz ; tar -xvf clang*.tar.gz

安装编译环境

拉取内核源码(android12)

oppo reno6的官方源码: https://github.com/oppo-source/android_kernel_oppo_mt6877
通过wget的方式下载,直接git会丢文件

1
$ wget https://github.com/oppo-source/android_kernel_oppo_mt6877/archive/4a0cd0dd4399ed76c1d09b9bf6a218ccd0494f80.tar.gz ; tar -xvf 4a*.tar.gz

oppo reno6的附加源码: https://github.com/oppo-source/android_kernel_modules_oppo_mt6877
通过git或者wget下载都可以

拉取内核源码(android13)

与android12大同小异。
源码: https://github.com/oppo-source/android_kernel_oppo_mtk_4.19
附加模块: https://github.com/oppo-source/android_kernel_modules_oppo_mtk_4.19
另外需要手动复制vendor/oplus/kernel_4.19/audio到sound/soc/codecs目录

添加kernelSU

进入源码目录,执行curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -

编译

将kernel source folder和kernel vendor source folder放在同一个目录下,然后进入源码目录
然后配置编译参数,这里假设我的编译链放在内核源码的上一层目录

1
2
3
4
$ export  BUILD_CROSS_COMPILE=../aarch64-linux-android-4.9/bin/aarch64-linux-android-
export CLANG_PATH=../clang/bin
export CROSS_COMPILE_ARM32=../arm-linux-androideabi-4.9/bin/arm-linux-androideabi-
export ARCH=arm64

然后提取手机里的/proc/config.gz里的config文件,重命名为ksu_defconfig(需root)扔到arch/arm64/configs
如果没有的话可以使用oplus6877_defconfig
然后检查内核配置文件有没有启用kprobes,如果没有,需要启用他们
执行

1
2
$ make oplus6877_defconfig
make menuconfig

然后按/键搜索kprobes并启用他们。
或者在.config里添加

1
2
3
4
CONFIG_KPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_KPROBE_EVENTS=y
CONFIG_MODULES=y

然后执行

1
$ make

编译完成的内核文件在arch/arm64/boot目录

构建支持kerbelSU的内核(使用我提供的内核源码)

我提供的oppo reno6 内核源码: https://github.com/dabao1955/android_kernel_OPPO_PEQM00/
安卓版本为13
构建过程跟官方内核大同小异。不过相比之下有以下几点变更

  • 需要将编译链放到家目录
  • 进入内核目录需要执行setup.sh同步kernelsu
  • 执行build.sh来编译内核

打包成卡刷文件

克隆anykernel3

1
$ git clone https://github.com/karthik558/AnyKernel3

删除以下目录或文件

  • .git*
  • dtbo.img
  • f2fs*
  • banner(可选)
  • README.md
    然后编辑anykernel.sh
    修改以下内容
1
2
device.name(1-5)=
supported.versions=

然后使用zip命令打包

1
$ zip -r xxx.zip ./*

集成到boot.img

使用magiskboot
解包boot.img

1
$ magiskboot unpack boot.img

然后替换kernel并生成新的boot.img

1
$ magiskboot repack boot.img boot-1.img


-------------本文结束感谢您的阅读-------------



  • linux
  • kernelSU
  • 移植
  • 内核编译
  • Kernel

扫一扫,分享到微信

微信分享二维码
浅谈联发科设备玩机的可能性
别当欧尼酱了12集归档
  1. 1. KernelSU简介
  • 什么是 KernelSU?
  • 功能
    1. 1. 构建支持kerbelSU的内核(使用官方内核源码)
  • 配置环境和编译链
  • 拉取内核源码(android12)
  • 拉取内核源码(android13)
  • 添加kernelSU
  • 编译
    1. 1. 构建支持kerbelSU的内核(使用我提供的内核源码)
    2. 2. 打包成卡刷文件
    3. 3. 集成到boot.img

  • 预览:

    0  字
    1 评论
    • Latest
    • Oldest
    • Hottest
    qq1112023-06-07
    洛杉矶Chrome114.0Windows 11

    附加源码 怎么放到一起?

    Powered by Waline v2.15.8
    © 2025 dpkg123
    本站已苟活 2 年 94 天 0 小时 27 分钟 20 秒
    Hexo Theme Yilia by Litten
    萌ICP备20231955号
    • 所有文章
    • 友情链接
    • 关于我

    tag:

    • 3DS
    • linux
    • buildroot
    • kernel
    • makefile
    • android
    • OPPO
    • dtc
    • dtb
    • miui
    • coloros
    • 手机
    • shell
    • 刷机工具
    • 二次元
    • 9008
    • 刷机
    • PostmarketOS
    • ROM移植
    • debian
    • Android
    • Root
    • Github
    • CI
    • Linux
    • hexo
    • github
    • 网页加速
    • 虚拟化 Android
    • 内核
    • 编译
    • 哔哩哔哩
    • av10492
    • 猎奇
    • 归档
    • 番剧
    • 别当欧尼酱了
    • twrp
    • build
    • 速通
    • 教程
    • 奇技淫巧
    • TypeScript
    • Github Actions
    • 杂谈
    • 网页搭建
    • android kernel
    • gki
    • 联发科
    • KernelSU
    • kvm
    • vps
    • fastboot
    • alpine
    • 软件源
    • kernelSU
    • 移植
    • 内核编译
    • Kernel
    • web前端

      缺失模块。
      1、请确保node版本大于6.2
      2、在博客根目录(注意不是yilia根目录)执行以下命令:
      npm i hexo-generator-json-content --save

      3、在根目录_config.yml里添加配置:

        jsonContent:
          meta: false
          pages: false
          posts:
            title: true
            date: true
            path: true
            text: false
            raw: false
            content: false
            slug: false
            updated: false
            comments: false
            link: false
            permalink: false
            excerpt: false
            categories: false
            tags: true
      

    • 内核编译排错

      2025-06-25

      #Android#内核#编译

    • 关于高通gunyah虚拟化的一些研究

      2025-03-03

      #虚拟化 Android

    • 安卓内核编译速通

      2025-02-13

      #Android#内核#编译#速通#教程#奇技淫巧

    • 使用github工作流全自动构建postmarketos刷机包

      2025-02-13

      #手机#刷机#Android#Root#Github#CI#Linux

    • PostmarketOS移植常见问题

      2024-08-12

      #linux#android#刷机#PostmarketOS#ROM移植

    • 本地搭建第三方alpine repo

      2024-03-22

      #linux#alpine#软件源

    • 折腾ts action遇到的其中一个问题

      2024-02-11

      #TypeScript#Github Actions

    • dtc编译教程

      2024-01-29

      #linux#android#dtc#dtb

    • OPPO Reno6 ColorOS13.1内核源码编译记录

      2024-01-15

      #kernel#android#OPPO

    • Android boot.img 文件的解包、修改与重打包小记

      2023-12-24

      #linux#android

    • twrp设备树从入门到放弃

      2023-12-10

      #linux#android#twrp#build

    • 3DS折腾linux小记

      2023-10-06

      #3DS#linux#buildroot#kernel

    • 暂停更新博客通知

      2023-08-08

      #杂谈

    • Makefile入门

      2023-08-04

      #linux#makefile

    • linux电脑给手机进行9008刷机

      2023-07-28

      #linux#9008#刷机

    • 浅谈安卓内核的碎片化

      2023-07-19

      #kernel#android#android kernel#gki

    • 哔哩哔哩危险地带部分补档

      2023-06-28

      #哔哩哔哩#av10492#猎奇

    • 使用dh_make快速构建deb

      2023-06-22

      #linux#debian

    • linux解压payload.bin和转换system.new.dat.br

      2023-06-18

      #linux#android#刷机

    • 浅谈联发科设备玩机的可能性

      2023-05-15

      #刷机#联发科#KernelSU#kvm

    • 给OPPO Reno6移植kernelSU

      2023-05-10

      #linux#kernelSU#移植#内核编译#Kernel

    • 别当欧尼酱了12集归档

      2023-05-02

      #归档#番剧#别当欧尼酱了

    • 珍爱生命,远离小众云

      2023-05-01

      #vps

    • fdt转dtb

      2023-04-30

      #android#dtb

    • coloros和miui

      2023-04-30

      #android#miui#coloros#手机

    • linux刷机工具箱

      2023-04-29

      #linux#shell#刷机工具

    • 简单写一个shell刷机脚本之进阶篇

      2023-04-29

      #linux#shell#刷机#fastboot

    • 简单写一个shell刷机脚本

      2023-04-29

      #linux#shell#刷机

    • linux娘

      2023-04-12

      #linux#二次元

    • 使用netlify加快博客访问速度

      2023-04-12

      #hexo#github#网页加速

    • hexo博客源码备份

      2023-04-10

      #hexo#github#web前端

    • 新博客

      2023-04-10

      #hexo#网页搭建

    • Hello World

      1970-01-01

    • note现在暂不考虑申请新的友链
    • 图床
    • 留言板
    • 原来的博客
    • Adminzhangの个人博客
    • cyp0633的blog
    • 小码同学
    • U.M.R-Powered-Blog
    • 秋澪Akimio
    • ialtone的小站
    • PiCpo的阁楼
    • artiga033
    • 柏园猫のBlog
    • 欠陥電気の摸鱼小池
    • 洛仙璃の幻梦
    • 木屐落在水洼了
    • 湛蓝的调色板
    • SakuraKooi的Blog
    • 新世界的大门
    • 沨鸾的小窝
    • Revincx
    • JIPA233の小窝
    • Mufanc
    • Fika
    • Pinpe的物语
    • 残夜的小博客
    透明小菜鸡一枚<br><br>目前正在学习C++和C<br>正在移植postmarketOS到k30pro上<br>本博客使用github-page作为网页托管平台,netlify提供cdn加速服务。<br>不知道为啥yilia主题改不了下面的文字。<br>总之欢迎来到这里!