forked from natsumerinchan/KernelSU_Oneplus_martini_Guide
-
Notifications
You must be signed in to change notification settings - Fork 0
168 lines (151 loc) · 7.4 KB
/
PixelOS-inline.yml
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
name: Pixel OS Inline
on:
workflow_dispatch:
inputs:
RELEASE_CONFIG:
description: 'Upload to Releases'
required: true
default: true
type: boolean
KERNEL_SOURCE:
description: 'Kernel Source'
required: true
default: "https://github.com/Kdjjjjn123/kernel_oneplus_sm8350.git"
type: string
KERNEL_SOURCE_BRANCH:
description: 'kernel Branch'
required: true
default: "fourteen"
type: string
KERNEL_DEFCONFIG:
description: 'Kernel Config'
required: true
default: "vendor/lahaina-qgki_defconfig"
type: string
ANYKERNEL3_SOURCE:
description: 'Anykernel3 Source'
required: true
default: "https://github.com/natsumerinchan/AnyKernel3-op9rt.git"
type: string
ANYKERNEL3_SOURCE_BRANCH:
description: 'Anykernel3 Branch'
required: true
default: "martini"
type: string
KERNELSU_CONFIG:
description: 'Compile KernelSU'
required: true
default: true
type: boolean
CCACHE_CONFIG:
description: 'Use Ccache'
required: true
default: true
type: boolean
KERNELSU_TAG:
description: 'Choose KernelSU branch or tag'
required: false
default:
type: string
jobs:
build:
runs-on: ubuntu-latest
env:
CCACHE_COMPILERCHECK: "%compiler% -dumpmachine; %compiler% -dumpversion"
CCACHE_NOHASHDIR: "true"
CCACHE_MAXSIZE: "2G"
CCACHE_HARDLINK: "true"
steps:
- uses: actions/checkout@v3
- name: Ccache
if: github.event.inputs.CCACHE_CONFIG == 'true'
uses: hendrikmuhs/[email protected]
with:
key: PixelOS-inline
- name: Setup Environment
run: |
export CLANG_PATH=~/proton-clang
git clone --depth=1 https://github.com/kdrag0n/proton-clang $CLANG_PATH
sh -c "$(curl -sSL https://raw.githubusercontent.com/akhilnarang/scripts/master/setup/android_build_env.sh)"
sudo apt install --fix-missing
export LLVM_VERSION=13
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh $LLVM_VERSION
rm ./llvm.sh
sudo apt install --fix-missing
sudo ln -s --force /usr/bin/clang-$LLVM_VERSION /usr/bin/clang
sudo ln -s --force /usr/bin/ld.lld-$LLVM_VERSION /usr/bin/ld.lld
sudo ln -s --force /usr/bin/llvm-objdump-$LLVM_VERSION /usr/bin/llvm-objdump
sudo ln -s --force /usr/bin/llvm-ar-$LLVM_VERSION /usr/bin/llvm-ar
sudo ln -s --force /usr/bin/llvm-nm-$LLVM_VERSION /usr/bin/llvm-nm
sudo ln -s --force /usr/bin/llvm-strip-$LLVM_VERSION /usr/bin/llvm-strip
sudo ln -s --force /usr/bin/llvm-objcopy-$LLVM_VERSION /usr/bin/llvm-objcopy
sudo ln -s --force /usr/bin/llvm-readelf-$LLVM_VERSION /usr/bin/llvm-readelf
sudo ln -s --force /usr/bin/clang++-$LLVM_VERSION /usr/bin/clang++
- name: Git kernel
run: |
git clone "${{ github.event.inputs.KERNEL_SOURCE }}" -b "${{ github.event.inputs.KERNEL_SOURCE_BRANCH }}" kernel
echo "TAG_NAME=$(date -u +%d%m%Y%I%M)" >> $GITHUB_ENV
- name: Setup KernelSU
if: github.event.inputs.KERNELSU_CONFIG == 'true'
run: |
cd $GITHUB_WORKSPACE/kernel
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
grep -q "CONFIG_MODULES=y" "arch/arm64/configs/${{ github.event.inputs.KERNEL_DEFCONFIG }}" || echo "CONFIG_MODULES=y" >> "arch/arm64/configs/${{ github.event.inputs.KERNEL_DEFCONFIG }}"
grep -q "CONFIG_KPROBES=y" "arch/arm64/configs/${{ github.event.inputs.KERNEL_DEFCONFIG }}" || echo "CONFIG_KPROBES=y" >> "arch/arm64/configs/${{ github.event.inputs.KERNEL_DEFCONFIG }}"
grep -q "CONFIG_HAVE_KPROBES=y" "arch/arm64/configs/${{ github.event.inputs.KERNEL_DEFCONFIG }}" || echo "CONFIG_HAVE_KPROBES=y" >> "arch/arm64/configs/${{ github.event.inputs.KERNEL_DEFCONFIG }}"
grep -q "CONFIG_KPROBE_EVENTS=y" "arch/arm64/configs/${{ github.event.inputs.KERNEL_DEFCONFIG }}" || echo "CONFIG_KPROBE_EVENTS=y" >> "arch/arm64/configs/${{ github.event.inputs.KERNEL_DEFCONFIG }}"
- name: Make kernel
run: |
cd $GITHUB_WORKSPACE/kernel
export KERNEL_DEFCONFIG=${{ github.event.inputs.KERNEL_DEFCONFIG }}
echo "===================Setup Export========================="
export KERNEL_PATH=$PWD
export CLANG_PATH=~/proton-clang
export PATH=${CLANG_PATH}/bin:${PATH}
export CLANG_TRIPLE=aarch64-linux-gnu-
export ARCH=arm64
export SUBARCH=arm64
echo "===================Setup Environment Again==================="
test -e "$CLANG_PATH/README.md" || git clone --depth=1 https://github.com/kdrag0n/proton-clang $CLANG_PATH
sudo apt install --fix-missing
echo "=========================Make=========================="
make O=out CC="ccache clang" CXX="ccache clang++" ARCH=arm64 CROSS_COMPILE=$CLANG_PATH/bin/aarch64-linux-gnu- CROSS_COMPILE_ARM32=$CLANG_PATH/bin/arm-linux-gnueabi- LD=ld.lld $KERNEL_DEFCONFIG
sed -i 's/CONFIG_LTO=y/CONFIG_LTO=n/' out/.config
sed -i 's/CONFIG_LTO_CLANG=y/CONFIG_LTO_CLANG=n/' out/.config
sed -i 's/CONFIG_THINLTO=y/CONFIG_THINLTO=n/' out/.config
echo "CONFIG_LTO_NONE=y" >> out/.config
make O=out CC="ccache clang" CXX="ccache clang++" ARCH=arm64 -j`nproc` CROSS_COMPILE=$CLANG_PATH/bin/aarch64-linux-gnu- CROSS_COMPILE_ARM32=$CLANG_PATH/bin/arm-linux-gnueabi- LD=ld.lld 2>&1 | tee kernel.log
- name: Create Anykernel3 file
run: |
cd $GITHUB_WORKSPACE/kernel
export KERNEL_PATH=$PWD
export ANYKERNEL3_SOURCE=${{ github.event.inputs.ANYKERNEL3_SOURCE }}
export ANYKERNEL3_SOURCE_BRANCH=${{ github.event.inputs.ANYKERNEL3_SOURCE_BRANCH }}
git clone -b $ANYKERNEL3_SOURCE_BRANCH $ANYKERNEL3_SOURCE AnyKernel3
mv $KERNEL_PATH/out/arch/arm64/boot/Image $KERNEL_PATH/AnyKernel3
cd $KERNEL_PATH/AnyKernel3
if test -e ./Image; then
zip -r Kernel.zip *
test -e ./tools/zipsigner.jar || wget -O ./tools/zipsigner.jar https://forum.xda-developers.com/attachments/zipsigner-3-0-jar.4586999/
java -jar ./tools/zipsigner.jar ./Kernel.zip ./PixelOS-Inline-martini-${{ env.TAG_NAME }}.zip
fi
- name: Upload Artifact
if: github.event.inputs.RELEASE_CONFIG == 'true'
uses: actions/upload-artifact@v3
with:
name: PixelOS-Inline-martini-${{ env.TAG_NAME }}
path: |
kernel/AnyKernel3/PixelOS-Inline-martini-${{ env.TAG_NAME }}.zip
kernel/repacker/vendor_dlkm.img
- name: Upload to Release
if: github.event.inputs.RELEASE_CONFIG == 'true'
uses: ncipollo/release-action@v1
with:
artifacts: "kernel/AnyKernel3/PixelOS-Inline-martini-${{ env.TAG_NAME }}.zip,kernel/repacker/vendor_dlkm.img"
tag: "PixelOS-Inline-martini-${{ env.TAG_NAME }}"
name: "PixelOS-Inline-martini-${{ env.TAG_NAME }}"
allowUpdates: true
replacesArtifacts: true
token: ${{ secrets.GITHUB_TOKEN }}