-
Notifications
You must be signed in to change notification settings - Fork 2
/
rikka_raphael_kernel.env
235 lines (173 loc) · 9.17 KB
/
rikka_raphael_kernel.env
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
CONFIG_ENV=config.env
#一般来说只需要按实际需要修改5-20行的相关内容就可以。包含18个工作流可同时工作可最大化提高编译内核的成功率,助力LXC,KernelSU 。
#工具链集包含AOSP clang ,LLVM, ARM gcc ,SD-clang(高通的llvm工具链),Proton-clang, Slim-LLVM, ZyC clang,Mandi-Sa-clang,linaro gcc ,Google gcc_4.9 ,Android NDK ,arter97_gcc等
#内核源地址
KERNEL_SOURCE=https://github.com/jw8013/rikka_raphael_kernel
#分支
KERNEL_SOURCE_BRANCH=rikka-v2
#内核配置文件
KERNEL_CONFIG=raphael_defconfig
#Kali-Nethunter支持,默认关闭,支持内核版本4.4-4.19。旧的内核版本或补丁失败的参考kali官方补丁https://gitlab.com/kalilinux/nethunter/build-scripts/kali-nethunter-kernel
#仅Build kernel by clang-r383902b支持。https://www.kali.org/docs/nethunter/nethunter-kernel-2-config-1/
ENABLE_NETHUNTER=false
#启用lxc-docker支持,鉴于很多人都不明白,禁用,懂的自己开启。默认支持KernelSU。
ENABLE_LXC=false
#KernelSU相关,默认开启。
ENABLE_KERNELSU=true
# rikka内核采用手动修补ksu源码的方式
KSU_EXPECTED_MANU=true
KSU_EXPECTED_PATH=drivers/staging/kernelsu
# 自动修补KSU
ADD_KPROBES_CONFIG=false
ADD_OVERLAYFS_CONFIG=true
KERNELSU_TAG=main
#Anykernel
ANY_KERNEL_NAME=rikka-v2
ANY_KERNEL_PATH=toolchains/AnyKernel3
#这块几乎可以不动,KERNEL_IMAGE_NAME可能的取值有Image.gz-dtb,Image.gz,Image等
KERNEL_IMAGE_NAME=Image.gz-dtb
ARCH=arm64
#额外附加命令,默认启用LLVM=1 LLVM_IAS=1
#EXTRA_CMDS:LD=ld.lld
EXTRA_CMDS:NM=llvm-nm OBJDUMP=llvm-objdump STRIP=llvm-strip LD=ld.lld LLVM=1 LLVM_IAS=1
#Ccache,可加速二次构建
ENABLE_CCACHE=false
#关闭fstack-protector-strong(clang-r383902b)
DISABLE_FST=true
#(0)使用Android NDK编译内核,NDK_VERSION可选的值有26,25,24,23,22,21,20,19,18,17,16,15
NDK_VERSION=21
#(1)谷歌官方的AOSP clang,对Build kernel Google git.yml生效
#AOSP 工具链参考选择可从74~111行的内容中进行选择
#更多可从这找 https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/
#请以此为准,进行修改,
CLANG_BRANCH=android12-release
CLANG_VERSION=r416183b
#(2)第三方源的AOSP clang
#此配置对 Build Kernel on ubuntu 20.04(build-kernel_ubuntu20.04.yml)和Build Kernel on ubuntu 22.04(build-kernel_ubuntu22.04.yml)都生效
TCLANG_BRANCH=clang-r450784e
#目前存在的clang分支如下,即TCLANG_BRANCH的可取值(54~67行的内容)
#clang-r498229
#clang-r487747c
#clang-r487747b
#clang-r487747
#clang-r475365b
#clang-r475365
#clang-r468909b
#clang-r468909
#clang-r450784e
#clang-r450784d
#clang-r458507
#clang-r399163b
#clang-r383902
#clang-r353983c
#
#
#(3)使用SD-clang构建内核,高通的clang编译器。默认启用启用分支10,目前存在的分支有 10,12,14,14.03
SD_CLANG_BRANCH=10
#比较合适的几类配置
#适合于老内核,安卓11及以下最稳的配置,默认此配置。运行构建时请使用 Build Kernel on ubuntu 20.04 (build-kernel.yml)此配置使用ubuntu 20.04。对于非常老的内核使用Google gcc-4.9构建,自行改一下。
# android11-release
# r383902b
#安卓12及以上,运行构建时请使用Build Kernel on ubuntu 22.04(build-kernel_ubuntu22.04.yml)
# android12-release
# r416183b
# 安卓 13
# android13-release
# r450784d
#主线,高版本内核使用
# main
# r475365b
####CLANG_BRANCH###CLANG_VERSION###
# main android13-release android12-release android11-release android10-release
#
#clang-3289846 clang-r450784d clang-3289846 clang-3289846 clang-3289846
#clang-r450784e clang-3289846 clang-r383902 clang-r353983c clang-r328903
#clang-r475365b clang-r416183b clang-r353983c1 clang-r339409b
#clang-r487747c clang-r416183b1 clang-r365631c clang-r344140b
#clang-r498229 clang-r370808 clang-r346389b
#clang-r498229b clang-r370808b clang-r346389c
# clang-r377782b clang-r349610
# clang-r377782c clang-r349610b
# clang-r377782d clang-r353983b
# clang-r383902 clang-r353983c
# clang-r383902b
#
#自定义工具链选择,选择proton-clang,该工具链针对AArch32、AArch64 和 x86 架构。它是用 LTO 和 PGO 构建的,以尽可能减少编译时间。
#官方版(已停止维护),最新到clang-13 https://github.com/kdrag0n/proton-clang
#若需要更旧的clang13以下 可到这找到https://github.com/kdrag0n/proton-clang/releases,自行改相关内容
#第三方维护版,最新到clang-17 ,默认使用此版。https://gitlab.com/LeCmnGend/proton-clang
#第三方维护版,目前存在的分支有 clang-13 , clang-14, clang-15, clang-16, clang-17
#(4)若要使用proton-clang,请使用build kernel by protonclang (build-kernel_by_proton-clang.yml)
ENABLE_PROTON_CLANG=true
PROTON_CLANG_SOURCE=https://gitlab.com/LeCmnGend/proton-clang
#PROTON_CLANG_BRANCH可选的值有 clang-13 ,clang-14, clang-15, clang-16, clang-17
PROTON_CLANG_BRANCH=clang-17
#(5)与proton-clang类似项目Neutron-clang,官网https://github.com/Neutron-Toolchains/
#目前存在版本main,16,17,18。main始终指向最新的Neutron-clang
NEUTRON_CLANG_VERSION=main
#采用较新的glibc,一般来是Neutron-clang工作所需要的,如果出现glibc相关的错误,请启用。更多参考这https://github.com/Neutron-Toolchains/clang-build-catalogue#how-to-install
ENABLE_CLIBC_PATCH=true
#(6)使用LLVM-clang,加我自己制作的electron-binutils来构建内核,由于ubuntu自带的binutils版本过少,加入electron-binutils可有更多版本的binutils,也更加合理的和各种llvm clang版本匹配。ELECTRON_BINUTILS_VERSION1和ELECTRON_BINUTILS_VERSION
#的取值是一样的,主要是懒得改了,加个1来区分,如果ELECTRON_BINUTILS_VERSION1留空则用ubuntu自带的binutils, 同理适用ELECTRON_BINUTILS_VERSION。(运行系统ubuntu-20.04)
#目前存在版本16.0.0 15.0.6 14.0.0 13.0.0 12.0.0 11.1.0 11.0.0 10.0.1 10.0.0 9.0.1 8.0.1
LLVM_CLANG_VERSION=17.0.6
#基于tc-build的相同配置的binutils,ELECTRON_BINUTILS_VERSION1的可选值有 2.41 2.40 2.39 2.38 2.37 2.36.1 2.36 2.35.2 2.35.1 2.35 2.34 2.33.1 2.32 2.31
ELECTRON_BINUTILS_VERSION1=2.41
#(6.5)使用llvm官方发布的最新的LLVM,基于ubuntu-22.04,加我自己制作的electron-binutils来构建内核。更新更快。(运行系统ubuntu-22.04,配置文件为build-kernel_by_LLVM-least.yml)
#目前LLVM存在版本即LLVM_VERSION的可选值 17.06 17.05 17.04 17.02 16.04 16.03 16.02
LLVM_VERSION=17.06
#基于tc-build的相同配置的binutils,ELECTRON_BINUTILS_VERSION的可选值有 2.41 2.40 2.39 2.38 2.37 2.36.1 2.36 2.35
ELECTRON_BINUTILS_VERSION=2.41
#(7)使用ZyC clang,构建内核。该配置对build-kernel_by_ZyC-clang.yml生效
#目前存在版本 18,17,16.05,16
ZYC_CLANG_VERSION=16
#(8)使用ARM gcc,构建内核。该配置对build-kernel_by_ARM-gcc.yml生效
#目前存在版本 12.3 11.3 10.3 10.2 9.2 8.32 8.31 8.22 8.21
ARM_GCC_VERSION=8.21
#(9)使用Mandi-Sa clang,构建内核.该配置对build-kernel_by_Mandi-Sa-clang.yml生效
#目前存在版本 15 16 17 18
MANDI-SA_CLANG_VERSION=18
#(10)使用自编译的Electron clang,来构建内核,仿proton-clang设计,采用llvm官方发布的稳定源码构建,集成binutils。Electron clang采用lto(full),pgo优化,加速内核构建。该配置对build-kernel_by_Electron-clang.yml(先画个饼,有时间又搞)。
#目前存在版本 16.06 17.06
#暂时无法使用
ELECTRON_CLANG_VERSION=17.06
#(11)还有一些固定配置,未列出的编译器,总之一句话,够用了,此编译器集足够编译2018年到现在的所有的内核版本,当然一些细节需要自己处理,自行研究吧。
#一般就别动下↓面的内容了,重点改上↑↑↑↑边的就可以了
# Clang
## Custom
USE_CUSTOM_CLANG=false
CUSTOM_CLANG_SOURCE=
CUSTOM_CLANG_BRANCH=
### if your set USE CUSTOM CLANG to false than DO NOT CHANGE CUSTOM CMDS
CUSTOM_CMDS:CLANG_TRIPLE=aarch64-linux-gnu-
## AOSP
#CLANG_BRANCH=android12-platform-release
#CLANG_VERSION=r416183b
# GCC
ENABLE_GCC_ARM64=true
ENABLE_GCC_ARM32=true
USE_CUSTOM_GCC_64=false
CUSTOM_GCC_64_SOURCE=
CUSTOM_GCC_64_BRANCH=
CUSTOM_GCC_64_BIN=aarch64-linux-android-
USE_CUSTOM_GCC_32=false
CUSTOM_GCC_32_SOURCE=
CUSTOM_GCC_32_BRANCH=
CUSTOM_GCC_32_BIN=arm-linux-androideabi-
# KernelSU flags
#ENABLE_KERNELSU=false
#KERNELSU_TAG=
KSU_EXPECTED_SIZE=
KSU_EXPECTED_HASH=
# Configuration
DISABLE-LTO=false
DISABLE_CC_WERROR=true
#ADD_KPROBES_CONFIG=false
#ADD_OVERLAYFS_CONFIG=false
# Ccache
#ENABLE_CCACHE=true
# DTBO image
NEED_DTBO=false
# Build boot images
BUILD_BOOT_IMG=false
SOURCE_BOOT_IMAGE=