-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
executable file
·127 lines (108 loc) · 3.22 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
#!/bin/bash
export USE_CCACHE=1
export CCACHE_COMPRESS=1
export CCACHE_SIZE=100G
export CCACHE_EXEC=/usr/bin/ccache
export CCACHE_DIR=/mnt/cache
set -e
BL=$PWD/treble_build_pe
BD=$HOME/builds
BRANCH=$1
[ "$BRANCH" == "" ] && BRANCH="twelve"
[ "$BRANCH" == "twelve" ] && BUILD="PixelExperience" || BUILD="PixelExperience_Plus"
[ "$BRANCH" == "twelve" ] && PEMK="$BL/pe.mk" || PEMK="$BL/peplus.mk"
initRepos() {
if [ ! -d .repo ]; then
echo "--> Initializing PE workspace"
repo init -u https://github.com/PixelExperience/manifest -b $BRANCH
echo
echo "--> Preparing local manifest"
mkdir -p .repo/local_manifests
cp $BL/manifest.xml .repo/local_manifests/pixel.xml
echo
fi
}
syncRepos() {
echo "--> Syncing repos"
repo sync -c --force-sync --no-clone-bundle --no-tags -j$(nproc --all)
echo
}
applyPatches() {
echo "--> Applying prerequisite patches"
bash $BL/apply-patches.sh $BL prerequisite $BRANCH
echo
echo "--> Applying PHH patches"
cd device/phh/treble
cp $PEMK .
bash generate.sh $(echo $PEMK | sed "s#$BL/##;s#.mk##")
cd ../../..
bash $BL/apply-patches.sh $BL phh $BRANCH
echo
echo "--> Applying personal patches"
bash $BL/apply-patches.sh $BL personal $BRANCH
echo
}
setupEnv() {
echo "--> Setting up build environment"
source build/envsetup.sh &>/dev/null
mkdir -p $BD
echo
}
buildTrebleApp() {
echo "--> Building treble_app"
cd treble_app
bash build.sh release
cp TrebleApp.apk ../vendor/hardware_overlay/TrebleApp/app.apk
cd ..
echo
}
buildVariant() {
echo "--> Building treble_arm64_bvN"
lunch treble_arm64_bvN-userdebug
make installclean
make -j$(nproc --all) systemimage
mv $OUT/system.img $BD/system-treble_arm64_bvN.img
echo
}
buildSlimVariant() {
echo "--> Building treble_arm64_bvN-slim"
wget https://gist.github.com/ponces/891139a70ee4fdaf1b1c3aed3a59534e/raw/slim.patch -O /tmp/slim.patch
(cd vendor/gapps && git am /tmp/slim.patch && rm /tmp/slim.patch)
make -j$(nproc --all) systemimage
(cd vendor/gapps && git reset --hard HEAD~1)
mv $OUT/system.img $BD/system-treble_arm64_bvN-slim.img
echo
}
buildVndkliteVariant() {
echo "--> Building treble_arm64_bvN-vndklite"
cd sas-creator
sudo bash lite-adapter.sh 64 $BD/system-treble_arm64_bvN.img
cp s.img $BD/system-treble_arm64_bvN-vndklite.img
sudo rm -rf s.img d tmp
cd ..
echo
}
generatePackages() {
echo "--> Generating packages"
xz -cv $BD/system-treble_arm64_bvN.img -T0 > $BD/"$BUILD"_arm64-ab-12.1-$BUILD_DATE-UNOFFICIAL.img.xz
xz -cv $BD/system-treble_arm64_bvN-vndklite.img -T0 > $BD/"$BUILD"_arm64-ab-vndklite-12.1-$BUILD_DATE-UNOFFICIAL.img.xz
xz -cv $BD/system-treble_arm64_bvN-slim.img -T0 > $BD/"$BUILD"_arm64-ab-slim-12.1-$BUILD_DATE-UNOFFICIAL.img.xz
rm -rf $BD/system-*.img
echo
}
START=`date +%s`
BUILD_DATE="$(date +%Y%m%d)"
initRepos
syncRepos
applyPatches
setupEnv
buildTrebleApp
buildVariant
#buildSlimVariant
#buildVndkliteVariant
generatePackages
END=`date +%s`
ELAPSEDM=$(($(($END-$START))/60))
ELAPSEDS=$(($(($END-$START))-$ELAPSEDM*60))
echo "--> Buildbot completed in $ELAPSEDM minutes and $ELAPSEDS seconds"
echo