From 05f910ef2a577b8de3f50c9c611e808c0826b241 Mon Sep 17 00:00:00 2001 From: android <android@lingyun.com> Date: Fri, 12 Jul 2024 14:12:26 +0800 Subject: [PATCH] Update Android SDK build shell script --- android_sdk/build.sh | 158 +++++++++++++++++++++++++++++----------------------- 1 files changed, 89 insertions(+), 69 deletions(-) diff --git a/android_sdk/build.sh b/android_sdk/build.sh index c4eac55..054bb37 100755 --- a/android_sdk/build.sh +++ b/android_sdk/build.sh @@ -7,7 +7,7 @@ TOP_PATH=$(realpath $PRJ_PATH/..) # SDK build workspace -SDK_DIR=/work/sdk_build +SDK_DIR=android_build # binaries build prefix install path PRFX_PATH=$PRJ_PATH/install @@ -22,10 +22,11 @@ CONF_FILE=$TOP_PATH/config.json #4g files path -FILES_PATCH_4G=$PRJ_PATH/apps/Quectel_RILv3.6.24 +FILES_PATCH_4G=$PRJ_PATH/patches/Quectel_RILv3.6.24 #wifi firmware path -FILES_PATCH_WIFI=$PRJ_PATH/apps +FILES_PATCH_WIFI=$PRJ_PATH/patches/wifi/ + # shell script will exit once get command error set -e @@ -101,101 +102,118 @@ export SDK_VER=`jq -r ".android.sdk_ver" $CONF_FILE` export SDK_PATH=`jq -r ".android.sdk_path" $CONF_FILE` - export ARCH=arm64 + export ARCH=arm64 - if [[ $BOARD =~ igkboard-rk3568 ]] ; then - LUNCH_BOARD=rk3568_t-userdebug - fi + if [[ $BOARD =~ igkboard-rk3568 ]] ; then + LAUNCH_BOARD=rk3568_t-userdebug + fi - PYTHON_VERSION=$(python --version 2>&1 | awk '{print $2}' | cut -d. -f1) - if [ $PYTHON_VERSION != "3" ] ; then - PYTHON_VERSION=$(python --version 2>&1) - pr_error "ERROR: This SDK build need Python3, current version is $PYTHON_VERSION" - pr_warn "You can use 'sudo update-alternatives --config python' command to switch it" - exit - fi + PYTHON_VERSION=$(python --version 2>&1 | awk '{print $2}' | cut -d. -f1) + if [ $PYTHON_VERSION != "3" ] ; then + PYTHON_VERSION=$(python --version 2>&1) + pr_error "ERROR: This SDK build need Python3, current version is $PYTHON_VERSION" + pr_warn "You can use 'sudo update-alternatives --config python' command to switch it" + exit + fi } function do_fetch() { - SDK_FPATH=$SDK_PATH/$SDK_VER + SDK_FPATH=$SDK_PATH/$SDK_VER - PATCH_FLAG="$SDK_DIR/kernel-5.10/arch/arm64/configs/rockchip_defconfig" - if [ -e $PATCH_FLAG ] ; then - pr_warn "SDK source code fetched already, skip do fetch" - fi + SDK_FLAG=$SDK_DIR/kernel-5.10/Makefile - if [ ! -d $SDK_DIR/.repo ] ; then + cd $PRJ_PATH - SDK_FILE=$SDK_PATH/$SDK_VER.tar.bz2 + if [ -e $SDK_FLAG ] ; then + pr_warn "INFO: SDK source code fetched already, skip do fetch" + fi - if [ ! -e $SDK_FILE ] ; then - pr_error "ERROR: SDK package '$SDK_FILE' doesn't exist!" - exit - fi + if [ ! -d $SDK_DIR/.repo ] ; then - pr_info "decompress SDK tarball $SDK_FILE..." + if [ ! -d $SDK_FPATH ] ; then + pr_error "ERROR: SDK package folder '$SDK_FPATH' doesn't exist!" + exit + fi - do_unpack $SDK_FILE $SDK_DIR - fi - - cd $SDK_DIR + SDK_FILE=`ls $SDK_FPATH/*.tar.bz2 | head -n 1` - if [ ! -e $PATCH_FLAG ] ; then - pr_info "repo sync to checkout source code..." - ./.repo/repo/repo sync -l - fi + pr_info "decompress SDK tarball $SDK_FILE..." + do_unpack $SDK_FILE $SDK_DIR + fi - if ! grep -q '^CONFIG_CAN=y' $PATCH_FLAG ; then - pr_info "patch for android..." - cd kernel-5.10 - patch -p1 < $PRJ_PATH/patches/kernel.patch - - cd ../vendor/rockchip/common/ - patch -p1 < $PRJ_PATH/patches/4g_patch/vendor.patch - cd $SDK_DIR/device/rockchip/common/ - patch -p1 < $PRJ_PATH/patches/4g_patch/device_rockchip.patch + if [ ! -e $SDK_FLAG ] ; then + pr_info "repo sync to checkout source code..." + cd $SDK_DIR + ./.repo/repo/repo sync -l + fi +} - cd $SDK_DIR/device/google/atv/ - patch -p1 < $PRJ_PATH/patches/4g_patch/device_google.patch +function do_patch() +{ + PATCH_FLAG="$SDK_DIR/kernel-5.10/arch/arm64/configs/rockchip_defconfig" - cd $SDK_DIR/hardware/interfaces/ - patch -p1 < $PRJ_PATH/patches/4g_patch/hardware_interfaces.patch + cd $PRJ_PATH - cd $SDK_DIR/hardware/ril/ - patch -p1 < $PRJ_PATH/patches/4g_patch/hardware_ril.patch + if grep -q '^CONFIG_CAN=y' $PATCH_FLAG > /dev/null 2>&1 ; then + pr_warn "INFO: Patch for Android SDK already" + return ; + fi - cd $SDK_DIR/frameworks/opt/telephony/ - patch -p1 < $PRJ_PATH/patches/4g_patch/frameworks_opt_telephony.patch - - pr_info "copy 4G RIL library..." + pr_info "do patch for android source code" + cd $SDK_DIR/kernel-5.10 + patch -p1 < $PRJ_PATH/patches/kernel.patch + cd - - cp -f $FILES_PATCH_4G/ip-* $SDK_DIR/vendor/rockchip/common/phone/etc/ppp/ - cp -f $FILES_PATCH_4G/ql-ril.conf $SDK_DIR/vendor/rockchip/common/phone/etc/ppp/ - cp -f $FILES_PATCH_4G/chat $SDK_DIR/vendor/rockchip/common/phone/bin/ - cp -f $FILES_PATCH_4G/libreference-ril.so $SDK_DIR/vendor/rockchip/common/phone/lib/libreference-ril-em05.so + cd $SDK_DIR/vendor/rockchip/common/ + patch -p1 < $PRJ_PATH/patches/4g_patch/vendor.patch + cd - - pr_info "copy wifi firmware..." + cd $SDK_DIR/device/rockchip/common/ + patch -p1 < $PRJ_PATH/patches/4g_patch/device_rockchip.patch + cd - - cp -f $FILES_PATCH_WIFI/mt7601u.bin $SDK_DIR/vendor/rockchip/common/wifi/firmware + cd $SDK_DIR/device/google/atv/ + patch -p1 < $PRJ_PATH/patches/4g_patch/device_google.patch + cd - - cd - fi + cd $SDK_DIR/hardware/interfaces/ + patch -p1 < $PRJ_PATH/patches/4g_patch/hardware_interfaces.patch + cd - + + cd $SDK_DIR/hardware/ril/ + patch -p1 < $PRJ_PATH/patches/4g_patch/hardware_ril.patch + cd - + + cd $SDK_DIR/frameworks/opt/telephony/ + patch -p1 < $PRJ_PATH/patches/4g_patch/frameworks_opt_telephony.patch + cd - + + pr_info "copy 4G RIL library..." + + cp -f $FILES_PATCH_4G/ip-* $SDK_DIR/vendor/rockchip/common/phone/etc/ppp/ + cp -f $FILES_PATCH_4G/ql-ril.conf $SDK_DIR/vendor/rockchip/common/phone/etc/ppp/ + cp -f $FILES_PATCH_4G/chat $SDK_DIR/vendor/rockchip/common/phone/bin/ + cp -f $FILES_PATCH_4G/libreference-ril.so $SDK_DIR/vendor/rockchip/common/phone/lib/libreference-ril-em05.so + + pr_info "copy wifi firmware..." + cp -f $FILES_PATCH_WIFI/mt7601u.bin $SDK_DIR/vendor/rockchip/common/wifi/firmware } function do_build() { - pr_info "Choose your board" + cd $PRJ_PATH - cd $SDK_DIR - - source build/envsetup.sh - lunch $LUNCH_BOARD - ./build.sh -AUCKu + pr_info "start build $LAUNCH_BOARD..." - pr_info "System image will be installed to $SDK_DIR/rockdev/Image-rk3568_t" - ls ./rockdev/Image-rk3568_t + cd $SDK_DIR + source build/envsetup.sh + lunch $LAUNCH_BOARD + ./build.sh -AUCKu + + pr_info "System image will be installed to $SDK_DIR/rockdev/Image-rk3568_t" + ls ./rockdev/Image-rk3568_t } #+-------------------------+ @@ -208,4 +226,6 @@ do_fetch +do_patch + do_build -- Gitblit v1.9.1