This repository has been archived by the owner on Nov 3, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
build_Z00T.sh
executable file
·112 lines (98 loc) · 3.1 KB
/
build_Z00T.sh
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
#!/bin/bash
BUILD_START=$(date +"%s")
# Colours
blue='\033[0;34m'
cyan='\033[0;36m'
yellow='\033[0;33m'
red='\033[0;31m'
nocol='\033[0m'
# Kernel details
KERNEL_NAME="FireKernel"
VERSION="r3.2"
DATE=$(date +"%d-%m-%Y-%I-%M")
DEVICE="Z00T"
FINAL_ZIP=$KERNEL_NAME-$VERSION-$DATE-$DEVICE.zip
defconfig=Z00T_defconfig
# Dirs
BASE_DIR=/media/hdd/aayush/kernel
KERNEL_DIR=$BASE_DIR/msm8916
ANYKERNEL_DIR=$KERNEL_DIR/AnyKernel3
KERNEL_IMG=$KERNEL_DIR/arch/arm64/boot/Image.gz-dtb
UPLOAD_DIR=$BASE_DIR/$DEVICE
# Export
export ARCH=arm64
export CROSS_COMPILE=/media/hdd/aayush/kernel/aarch64-elf-gcc/bin/aarch64-elf-
# Toolchain Used: https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads
## Functions ##
# Make kernel
function make_kernel() {
echo -e "$cyan***********************************************"
echo -e " Initializing defconfig "
echo -e "***********************************************$nocol"
make $defconfig
echo -e "$cyan***********************************************"
echo -e " Building kernel "
echo -e "***********************************************$nocol"
make -j8
if ! [ -a $KERNEL_IMG ];
then
echo -e "$red Kernel Compilation failed! Fix the errors! $nocol"
exit 1
fi
}
# Making zip
function make_zip() {
cp $KERNEL_IMG $ANYKERNEL_DIR
mkdir -p $UPLOAD_DIR
cd $ANYKERNEL_DIR
zip -r9 UPDATE-AnyKernel2.zip * -x README UPDATE-AnyKernel2.zip
mv $ANYKERNEL_DIR/UPDATE-AnyKernel2.zip $UPLOAD_DIR/$FINAL_ZIP
}
# Options
function options() {
echo -e "$cyan***********************************************"
echo " Compiling FireKernel kernel "
echo -e "***********************************************$nocol"
echo -e " "
echo -e " Select one of the following types of build : "
echo -e " 1.Dirty"
echo -e " 2.Clean"
echo -n " Your choice : ? "
read ch
echo -e " Select if you want zip or just kernel : "
echo -e " 1.Get flashable zip"
echo -e " 2.Get kernel only"
echo -n " Your choice : ? "
read ziporkernel
case $ch in
1) echo -e "$cyan***********************************************"
echo -e " Dirty "
echo -e "***********************************************$nocol"
make_kernel;;
2) echo -e "$cyan***********************************************"
echo -e " Clean "
echo -e "***********************************************$nocol"
make clean
make mrproper
make_kernel;;
esac
if [ "$ziporkernel" = "1" ]; then
echo -e "$cyan***********************************************"
echo -e " Making flashable zip "
echo -e "***********************************************$nocol"
make_zip
else
echo -e "$cyan***********************************************"
echo -e " Building Kernel only "
echo -e "***********************************************$nocol"
fi
}
# Clean Up
function cleanup(){
rm -rf $ANYKERNEL_DIR/Image.gz-dtb
}
options
cleanup
BUILD_END=$(date +"%s")
DIFF=$(($BUILD_END - $BUILD_START))
echo -e "$yellow Build completed in $(($DIFF / 60)) minute(s) and $(($DIFF % 60)) seconds.$nocol"