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

  • 主页
  • 归档
  • 软件

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

2024-01-15

前几天看到 OPPO 的 mt6877 源码放出了 Reno6 ColorOS13.1 分支。遂拉下来编译。

Config

首先需要知道 Reno6 ColorOS13.1 的内核用的是什么配置。

保险起见还是应该直接拿本机的 config 文件来进行编译。但是一方面 ColorOS13 太烂,烂的依托答辩。另一方面笔者没有解锁 Bootloader.而解锁又会清除数据。所以这条道路基本是行不通的。

根据查看本机信息得到 ColorOS 11.x/12.x 的内核版本是不变的,使用的配置均为 k6877v1_64_defconfig ,遂使用 k6877v1_64_k419_defconfig 来进行编译。

编译

这方面就没有啥太多想说的,无非就是安装依赖,拉取源码,然后写一个脚本编译然后就该干啥干啥了。

哦对了,如果要编译 OPLUS 内核的话,建议在 内核源码根目录的 nativefeatrues.memk 或者 oplus_native_features.mk 注释掉以下内容:

还有,如果是新机型的话,别忘了拉vendor源码。

Makefile
1
2
3
4
5
6
#OPLUS_FEATURE_SECURE_EXECGUARD=yes
#OPLUS_FEATURE_SECURE_GUARD=yes
#OPLUS_FEATURE_SECURE_KEVENTUPLOAD=yes
#OPLUS_FEATURE_SECURE_KEYINTERFACESGUARD=yes
#OPLUS_FEATURE_SECURE_MOUNTGUARD=yes
#OPLUS_FEATURE_SECURE_ROOTGUARD=yes

还要注释相关配置文件的内容:

defconfig
1
2
3
4
5
6
#ifdef CONFIG_OPLUS_SECURE_GUARD
CONFIG_OPLUS_ROOT_CHECK=y
CONFIG_OPLUS_EXECVE_BLOCK=y
CONFIG_OPLUS_MOUNT_BLOCK=y
CONFIG_OPLUS_SECURE_GUARD=y
#endif /*CONFIG_OPLUS_SECURE_GUARD*/

fix

然而不出以为的话应该会出意外。

然后果然出意外了。

logcat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
In file included from ../drivers/misc/mediatek/sensor/2.0/oplus_sensor_devinfo/oplus_sensor_feedback/sensor_feedback.c:24:
In file included from ../drivers/misc/mediatek/scp/rv/scp_helper.h:15:
../drivers/misc/mediatek/scp/rv/scp_feature_define.h:9:10: fatal error: 'scp.h' file not found
#include "scp.h"
^~~~~~~
1 error generated.
make[8]: *** [../scripts/Makefile.build:334: drivers/misc/mediatek/sensor/2.0/oplus_sensor_devinfo/oplus_sensor_feedback/sensor_feedback.o] Error 1
make[7]: *** [../scripts/Makefile.build:637: drivers/misc/mediatek/sensor/2.0/oplus_sensor_devinfo/oplus_sensor_feedback] Error 2
make[6]: *** [../scripts/Makefile.build:637: drivers/misc/mediatek/sensor/2.0/oplus_sensor_devinfo] Error 2
make[5]: *** [../scripts/Makefile.build:637: drivers/misc/mediatek/sensor/2.0] Error 2
make[4]: *** [../scripts/Makefile.build:637: drivers/misc/mediatek/sensor] Error 2
make[4]: *** Waiting for unfinished jobs....
CC drivers/misc/mediatek/scp/rv/scp_hwvoter_dbg.o
AR drivers/misc/mediatek/sspm/v2/built-in.a
AR drivers/misc/mediatek/sspm/built-in.a
CC drivers/spi/spi.o
CC drivers/spi/spi-mt65xx.o
CC drivers/spi/spi-mt65xx-dev.o
AR drivers/misc/mediatek/scp/rv/built-in.a
AR drivers/misc/mediatek/scp/built-in.a
make[3]: *** [../scripts/Makefile.build:637: drivers/misc/mediatek] Error 2
make[2]: *** [../scripts/Makefile.build:637: drivers/misc] Error 2
make[2]: *** Waiting for unfinished jobs....

遂通过 find 命令找到了该文件的位置:

find
1
drivers/misc/mediatek/scp/include/scp.h

于是就通过 ln 命令进行了软连接。考虑到头文件里可能还嵌入头文件,遂把剩下的头文件也 ln了过去。

你以为这就完了吗?

接着编译发现又出现了以下问题:

logcat
1
2
3
4
5
6
7
8
9
10
11
12
 DTC     arch/arm64/boot/dts/mediatek/oplus6877_20181.dtb
AR lib/crypto/built-in.a
../arch/arm64/boot/dts/mediatek/oplus6877_20181.dts:1039:10: fatal error: 'oplus6877_20181/cust.dtsi' file not found
#include "oplus6877_20181/cust.dtsi"
^~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[3]: *** [scripts/Makefile.lib:298: arch/arm64/boot/dts/mediatek/oplus6877_20181.dtb] Error 1
make[2]: *** [../scripts/Makefile.build:637: arch/arm64/boot/dts/mediatek] Error 2
make[1]: *** [arch/arm64/Makefile:153: dtbs] Error 2
make[1]: *** Waiting for unfinished jobs....
CC lib/fonts/fonts.o
CC lib/fonts/font_8x16.o

然而很抱歉,笔者翻阅了真我一加的 mt6877 源码后也没有找到这个文件,于是就注释掉了相关选项:

k6877v1_64_k419_defconfig
1
2
3
4
#CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y
#CONFIG_BUILD_ARM64_DTB_OVERLAY_IMAGE=y
#CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES="mediatek/mt6877"
#CONFIG_BUILD_ARM64_DTB_OVERLAY_IMAGE_NAMES="mediatek/oplus6877_20181 mediatek/oplus6877_20181_v1 mediatek/oplus6877_20181_v2 mediatek/oplus6877_20181_v3 mediatek/oplus6877_20181_v4 mediatek/oplus6877_20355 mediatek/oplus6877_20355_v1 mediatek/oplus6877_20355_v2 mediatek/k6877v1_64_k419_dummy8 mediatek/oplus6877_21081 mediatek/oplus6877_212A1 mediatek/oplus6877_21851 mediatek/oplus6877_22612 mediatek/oplus6877_2169E mediatek/oplus6877_21711 mediatek/oplus6877_22710 mediatek/oplus6877_22633 mediatek/oplus6877_22037 mediatek/oplus6877_22277"

而且笔者也并没有在 arch/arm64/boot/Makefile 里找到有关于 Image.gz-dtb 和 dtbo 的内容。

最后编译出了 Image.gz 文件

logcat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  AR      drivers/misc/built-in.a
AR drivers/built-in.a
GEN .version
CHK include/generated/compile.h
AR built-in.a
MODPOST vmlinux.o
WARNING: modpost: Found 1 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
KSYM .tmp_kallsyms1.o
KSYM .tmp_kallsyms2.o
LD vmlinux
SORTEX vmlinux
SYSMAP System.map
OBJCOPY arch/arm64/boot/Image
Building modules, stage 2.
MODPOST 7 modules
WARNING: sound/soc/codecs/mt6357-accdet: 'accdet_read_audio_res' exported twice. Previous export was in vmlinux
WARNING: sound/soc/codecs/mt6357-accdet: 'accdet_late_init' exported twice. Previous export was in vmlinux
WARNING: sound/soc/codecs/mt6359-accdet: 'accdet_read_audio_res' exported twice. Previous export was in vmlinux
WARNING: sound/soc/codecs/mt6359-accdet: 'accdet_late_init' exported twice. Previous export was in vmlinux
CC drivers/video/backlight/lcd.mod.o
CC kernel/kheaders.mod.o
CC kernel/trace/trace_mmstat.mod.o
GZIP arch/arm64/boot/Image.gz
CC net/ipv4/tcp_htcp.mod.o

附: 笔者比对了 android_kernel_oppo_mtk_4.19 ,除了配置文件不一样,其他地方应该是相同的



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



  • kernel
  • android
  • OPPO

扫一扫,分享到微信

微信分享二维码
dtc编译教程
Android boot.img 文件的解包、修改与重打包小记
  1. 1. Config
  2. 2. 编译
  3. 3. fix

预览:

0  字
2 评论
  • Latest
  • Oldest
  • Hottest
ZENIN CLAN(TOJI)2024-06-27
德里Chrome126.0Linux x86_64

is this kernel boots on stock (operating system)after compiling
please reply me sir

dpkg123博主嘤嘤怪2024-01-27
东京都Edge118.0Android 10

我太难了.jpg

Powered by Waline v2.15.8
© 2025 dpkg123
本站已苟活 2 年 93 天 7 小时 58 分钟 42 秒
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>总之欢迎来到这里!