forked from HavocParasite/android_kernel_lenovo_msm8916
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sh
executable file
·129 lines (115 loc) · 3.63 KB
/
build.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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/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="Boot-test"
VERSION="v1"
DATE=$(date +"%d-%m-%Y-%I-%M")
DEVICE="p1a42"
FINAL_ZIP=$KERNEL_NAME-$VERSION-$DATE-$DEVICE.zip
defconfig=passion_defconfig
# Dirs
KERNEL_DIR=~/android/kernel/lenovo/passion
ANYKERNEL_DIR=$KERNEL_DIR/AnyKernel2
KERNEL_IMG=$KERNEL_DIR/arch/arm64/boot/Image
DT_IMAGE=$KERNEL_DIR/arch/arm64/boot/dt.img
UPLOAD_DIR=~/android/kernel/upload/$DEVICE
DTBTOOL=$KERNEL_DIR/tools/dtbToolCM
# Export
export ARCH=arm64
export CROSS_COMPILE=~/android/kernel/toolchain/google-64-4.9/bin/aarch64-linux-android-
export KBUILD_BUILD_USER="haha"
export KBUILD_BUILD_HOST="FireLord"
## 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 -j10
if ! [ -a $KERNEL_IMG ];
then
echo -e "$red Kernel Compilation failed! Fix the errors! $nocol"
exit 1
fi
}
# Make DT.IMG
function make_dt(){
$DTBTOOL -2 -o $DT_IMAGE -s 2048 -p $KERNEL_DIR/scripts/dtc/ $KERNEL_DIR/arch/arm/boot/dts/
}
# Making zip
function make_zip() {
mkdir -p tmp_mod
make -j4 modules_install INSTALL_MOD_PATH=tmp_mod INSTALL_MOD_STRIP=1
find tmp_mod/ -name '*.ko' -type f -exec cp '{}' $ANYKERNEL_DIR/modules/ \;
cp $KERNEL_IMG $ANYKERNEL_DIR
cp $DT_IMAGE $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
make_dt ;;
2) echo -e "$cyan***********************************************"
echo -e " Clean "
echo -e "***********************************************$nocol"
make clean
make mrproper
rm -rf tmp_mod
make_kernel
make_dt ;;
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
rm -rf $ANYKERNEL_DIR/dt.img
rm -rf $ANYKERNEL_DIR/modules/*.ko
rm -rf $KERNEL_DIR/arch/arm/boot/dts/*.dtb
rm -rf $DT_IMAGE
}
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"