oss-t: 官方开源的ColorOS13内核源码整理,仅适用于编译给ColorOS12.1-ColorOS13.1使用
oss-s: 官方开源的ColorOS12.1内核源码整理,主要给类原生使用,在官方系统上(ColorOS12.1-ColorOS13.1)无法触发oddo私有快充
oss-r: 官方开源的Findx2内核源码整理,与Ace2通用,但是仅适用于ColorOS11 C11及以前的版本
oss-q: 官方开源的ColorOS7.1内核源码整理,适用于ColorOS7.1
下载 aarch64-linux-android-4.9
, 可以去LineageOS的仓库下载
下载 clang-r383902b1
, 在github搜以下就行
拉取内核源码,在源码根目录下创建一个编译脚本(这里就叫build.sh), 写入以下内容:
mkdir out
BUILD_CROSS_COMPILE="aarch64-linux-android-4.9编译器文件夹位置"/bin/aarch64-linux-android-
CLANG_PATH="clang-r383902b1的文件夹位置"/bin
CROSS_COMPILE_ARM32="arm-linux-androideabi-4.9的文件夹位置"/bin/arm-linux-androideabi-
CLANG_TRIPLE=aarch64-linux-gnu-
export ARCH=arm64
export PATH=${CLANG_PATH}:${PATH}
make -j8 -C $(pwd) O=$(pwd)/out CROSS_COMPILE=$BUILD_CROSS_COMPILE CLANG_TRIPLE=$CLANG_TRIPLE CROSS_COMPILE_ARM32=$CROSS_COMPILE_ARM32 \
CC=clang \
vendor/op4ad9_defconfig //编译配置文件,自己去arch/arm64/configs目录下寻找
make -j8 -C $(pwd) O=$(pwd)/out CROSS_COMPILE=$BUILD_CROSS_COMPILE CLANG_TRIPLE=$CLANG_TRIPLE CROSS_COMPILE_ARM32=$CROSS_COMPILE_ARM32 \
CC=clang \
-Werror \
2>&1 | tee build.txt
out/arch/arm64/boot
下的Image就是编译出来的内核defconfig文件在
arch/arm64/config
目录下,然而里面有一堆厂商的配置文件不知道用谁,在此目录找出以下的编译配置文件拿来编译就行
oss-t: stock_defconfig
oss-s: vendor/op4ad9_defconfig
oss-r: vendor/op4ad9-perf_defconfig
oss-q: stock_defconfig
arrow-13.0: 从realme gt neo2 kang过来的类原生使用的
rebase-S: 从realme gt neo2 找来的安卓12源码,早期的类原生测试
topaz: 从realme gt neo2找来的给AOSPA使用的内核源码(安卓13)
内核源码
和kernel module
,然后就开始编译,从ColorOS12.1开始发布的内核源码很完善了(仅限于sm8250),编译出来的能开机。由于高通部分东西如audio, qcacld, data-kernel需要自己另外合并,才能使声音、wifi正常工作(至于怎么合并,只要是tag相同都是通用的)。aosp-clang-r383902
+ gcc-4.9
这么老的编译器?oss-t
, oss-r
, oss-q
怎么办?llvm+binutils
吧,其实那个 oss-s
是做过相关处理了(其实不是我搞的,只是我当初 kang youngguo18 的oppo-kernel附带的,编译的时候,参照源码里面的build_llvm.sh)oss-t
源码适用于 FindX2
吗?Ace2
一样可以用。oss-t
, oss-r
的内核源码怎么看起来和 realme
, oneplus
的那么像?oppo
realme
oneplus
三者的 sm8250
安卓13的内核源码,基线是一致的,仅设备驱动不一样。如果编译有啥缺失的都可以在这三个寻找一下。ColorOS13
的内核源码和 ColorOS12.1
的,有何区别?vendor freeze
啥的特性快速适配来的,所以这可以解释为何在 ColorOS12.1
与 ColorOS13
之间互刷 boot.img
都能正常开机而不是直接重启到 fastboot
。注意:ColorOS12.1和ColorOS13的并没有Ace2的twrp,因为findx2的twrp能兼容Ace2,所以就去隔壁Findx2找了一份过来。