| #!/bin/bash |
| |
| build_kernel() { |
| echo "==========Building kernel image==========" |
| cd $ANDROID_BUILD_TOP |
| source build/envsetup.sh |
| lunch walleye-userdebug |
| cd $LOCAL_KERNEL_HOME |
| . ./build.config |
| make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} ${DEFCONFIG} |
| make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} -j32 |
| cp $LOCAL_KERNEL_HOME/arch/arm64/boot/Image.lz4-dtb arch/arm64/boot/dtbo.img `find . -name '*.ko'` $ANDROID_BUILD_TOP/device/google/wahoo-kernel |
| } |
| |
| build_image() { |
| cd $ANDROID_BUILD_TOP |
| source build/envsetup.sh |
| lunch walleye-userdebug |
| if [ "$1" = "bootimage" ]; then |
| echo "==========Building bootimage==========" |
| make -j32 vendorimage-nodeps |
| make -j32 vbmetaimage-nodeps |
| make -j32 bootimage |
| else |
| echo "==========Building complete image==========" |
| make -j32 |
| fi |
| } |
| |
| wait_for_fastboot() { |
| # wait for device to enter fastboot, max wait is 200secs |
| local i=0 |
| while [ $i -lt 100 ] |
| do |
| if [ -n "`fastboot devices`" ]; then |
| break |
| else |
| sleep 2 |
| i=$((i+1)) |
| fi |
| done |
| } |
| |
| flash_android() { |
| # reboot the device if it's online |
| if [ "`adb devices`" != "List of devices attached" ]; then |
| echo "==========Rebooting the device into fastboot==========" |
| adb reboot bootloader |
| fi |
| |
| echo "==========Waiting for device to enter fastboot==========" |
| wait_for_fastboot |
| |
| if [ -z "`fastboot devices`" ]; then |
| echo "==========Device failed to enter fastboot==========" |
| exit |
| fi |
| |
| # flash the device |
| if [ "$1" = "bootimage" ]; then |
| echo "==========Flashing bootimage==========" |
| fastboot flash vbmeta |
| fastboot flash vendor |
| fastboot flash boot |
| fastboot reboot |
| else |
| echo "==========Flashing complete image==========" |
| fastboot flashall |
| fi |
| |
| echo "==========Waiting for device to come online==========" |
| # wait for device to boot |
| adb wait-for-device |
| } |
| |
| # check input parameters |
| if [ "$1" != "kernel" ] && [ "$1" != "all" ]; then |
| echo "First parameter \"$1\" is invalid. Should be \"kernel\" or \"all\"." |
| exit |
| fi |
| |
| if [ "$2" != "build" ] && [ "$2" != "flash" ]; then |
| echo "Second parameter \"$2\" is invalid. Should be \"build\" or \"flash\"." |
| exit |
| fi |
| |
| if [ -z "$ANDROID_BUILD_TOP" ]; then |
| echo "ANDROID_BUILD_TOP environment variable is not set." |
| exit |
| fi |
| |
| if [ -z "$LOCAL_KERNEL_HOME" ]; then |
| echo "LOCAL_KERNEL_HOME environment variable is not set." |
| exit |
| fi |
| |
| if [ "$2" = "build" ]; then |
| build_kernel |
| if [ "$1" = "kernel" ]; then |
| build_image bootimage |
| else |
| build_image |
| fi |
| else |
| if [ "$1" = "kernel" ]; then |
| flash_android bootimage |
| else |
| flash_android |
| fi |
| fi |
| |