LeOS-GSI/build-u.sh

204 lines
6.3 KiB
Bash

#!/bin/bash
MONTH="date +%B"
echo
echo "--------------------------------------"
echo " LeOS-U Buildbot "
echo " by "
echo " harvey186 "
echo "--------------------------------------"
echo
#git clone http://62.178.96.192:3000/JoJo/LeOS-GSI.git -b LeOS-U
##### only for testing ###
sudo rm -R treble_aosp
###-
git clone https://github.com/ponces/treble_aosp -b android-14.0
cp LeOS/patch.sh treble_aosp/patch.sh
#git clone https://github.com/ponces/vendor_ponces.git -b android-14.0 vendor/ponces
set -e
initRepos() {
if [ ! -d .repo ]; then
echo "--> Initializing workspace"
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r21 --git-lfs
echo
echo "--> Preparing local manifest"
mkdir -p .repo/local_manifests
cp treble_aosp/build/manifest.xml .repo/local_manifests/aosp.xml
# cp LeOS/leos.xml .repo/local_manifests/leos.xml
cp LeOS/eOS.xml .repo/local_manifests/eOS.xml
cp LeOS/removeAOSP.xml .repo/local_manifests/remove.xml
echo
fi
}
syncRepos() {
echo "--> Syncing repos"
repo sync -c --force-sync --no-clone-bundle --no-tags -j$(nproc --all)
echo
}
applyPatches() {
echo "--> Applying TrebleDroid patches"
bash treble_aosp/patch.sh treble_aosp trebledroid
echo
echo "--> Applying ponces personal patches"
rm treble_aosp/patches/personal/platform_frameworks_base/0001-gmscompat-Change-attestation-and-instrumentation-to-.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0002-gmscompat-Spoof-Pixel-XL-for-Google-Photos.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0003-monet-Use-Style.SPRITZ-by-default.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0004-fw-b-Use-ro.build.version.incremental-to-signal-OTA-.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0005-SystemUI-fix-SliceView-layout.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0006-Add-android.permission.READ_PHONE_STATE-to-manifest.patch
rm treble_aosp/patches/personal/platform_frameworks_base/0007-permissions-Pre-grant-google-restore-permissions.patch
rm -R treble_aosp/patches/personal/platform_frameworks_base/0008-feat-Add-Lockscreen-Weather-with-OmniJaws-1-2.patch
rm -R treble_aosp/patches/personal/device_phh_treble
rm -R treble_aosp/patches/personal/platform_build
rm -R treble_aosp/patches/personal/platform_packages_apps_Trebuchet
rm -R treble_aosp/patches/personal/platform_packages_apps_Aperture
rm -R treble_aosp/patches/personal/platform_packages_apps_Settings/0001-feat-Add-Lockscreen-Weather-with-OmniJaws-2-2.patch
bash treble_aosp/patch.sh treble_aosp personal
echo
echo "--> Applying LeOS patches"
cp -R patches/leos treble_aosp/patches/leos
bash treble_aosp/patch.sh treble_aosp leos
echo "testlists"
cp LeOS/instrumentation_test_list.mk platform_testing/build/tasks/tests/
cp LeOS/platform_test_list.mk platform_testing/build/tasks/tests/
echo "texte"
cp LeOS/texte.sh .
bash texte.sh
echo
echo "--> Generating makefiles"
cp treble_aosp/build/aosp.mk device/phh/treble/
cd device/phh/treble
bash generate.sh aosp
cd ../../..
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
}
buildVanillaVariant() {
echo "--> Building treble_arm64_bvS"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_arm64_bvS-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
echo
echo "--> Building treble_a64_bvS"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_a64_bvS-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
echo "--> Building LeOS-U-VNDKLITE-arm64-bvS.img"
cd treble_adapter
sudo bash lite-adapter.sh 64 ../out/target/product/leos_arm64_ab/system.img
mv s.img LeOS-U-VNDKLITE-arm64-bvS.img
sudo rm -rf d tmp
echo "--> Building LeOS-U-VNDKLITE-arm64-bvN"
sudo bash lite-adapterN.sh 64 ../out/target/product/leos_arm64_ab/system.img
mv s.img LeOS-U-VNDKLITE-arm64-bvN.img
sudo rm -rf d tmp
cd ..
echo
echo "--> Building LeOS-U-VNDKLITE-a64-bvS.img"
cd treble_adapter
sudo bash lite-adapterSa64.sh 32 ../out/target/product/leos_a64_ab/system.img
mv s.img LeOS-U-VNDKLITE-a64-bvS.img
sudo rm -rf d tmp
echo "--> Building LeOS-U-VNDKLITE-a64-bvN"
sudo bash lite-adapterNa64.sh 32 ../out/target/product/leos_a64_ab/system.img
mv s.img LeOS-U-VNDKLITE-a64-bvN.img
sudo rm -rf d tmp
cd ..
echo
cd prebuilts/prebuiltapks/foss_nano/
bash update.sh
cd ../../..
echo "--> Building treble_arm64_bvN"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_arm64_bvN-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
echo
echo "--> Building treble_a64_bvN"
export WITHOUT_CHECK_API=true
export USE_CCACHE=1
export CCACHE_SIZE=50G
export WITH_SU=true
lunch leos_a64_bvN-userdebug
#make installclean
make -j12 RELAX_USES_LIBRARY_CHECK=true systemimage
}
generatePackages() {
echo "--> Generating packages"
cp out/target/product/leos_arm64_ab/system.img treble_adapter/LeOS-U-VNDK-arm64_bvN.img
cp out/target/product/leos_a64_ab/system.img treble_adapter/LeOS-U-VNDK-a64-bvN.img
cd treble_adapter
xz -vT0 *.img
cp *.img.xz /media/ich/exSSD2/leos-cloud/LeOS-Files/LeOS-U/$MONTH/
echo
}
echo "READY"
START=$(date +%s)
initRepos
syncRepos
applyPatches
setupEnv
buildTrebleApp
buildVanillaVariant
generatePackages
END=$(date +%s)
ELAPSEDM=$(($(($END-$START))/60))
ELAPSEDS=$(($(($END-$START))-$ELAPSEDM*60))
echo "--> Buildbot completed in $ELAPSEDM minutes and $ELAPSEDS seconds"
echo