android
2024-07-11 fd27ef17c1717b811924626bb902b3b19ea97616
update android_sdk build shell script for do_patch
1 files modified
141 ■■■■ changed files
android_sdk/build.sh 141 ●●●● patch | view | raw | blame | history
android_sdk/build.sh
@@ -7,7 +7,7 @@
TOP_PATH=$(realpath $PRJ_PATH/..)
# SDK build workspace
SDK_DIR=/work/sdk_build
SDK_DIR=/work/android_build
# binaries build prefix install path
PRFX_PATH=$PRJ_PATH/install
@@ -101,101 +101,106 @@
    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_TAR=$SDK_PATH/$SDK_VER.tar.bz2
    SDK_FLAG=$SDK_DIR/kernel-5.10/Makefile
    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
    if [ -e $SDK_FLAG ] ;  then
        pr_warn "INFO: SDK source code fetched already, skip do fetch"
    fi
    if [ ! -d $SDK_DIR/.repo ] ; then
    if [ ! -d $SDK_DIR/.repo ] ; then
        SDK_FILE=$SDK_PATH/$SDK_VER.tar.bz2
        if [ ! -e $SDK_TAR ] ; then
            pr_error "ERROR: SDK package '$SDK_TAR' doesn't exist!"
            exit
        fi
        if [ ! -e $SDK_FILE ] ; then
            pr_error "ERROR: SDK package '$SDK_FILE' doesn't exist!"
            exit
        fi
        pr_info "decompress SDK tarball $SDK_TAR..."
        do_unpack $SDK_TAR $SDK_DIR
    fi
        pr_info "decompress SDK tarball $SDK_FILE..."
    cd $SDK_DIR
        do_unpack $SDK_FILE $SDK_DIR
    fi
    cd $SDK_DIR
    if [ ! -e $SDK_FLAG ] ; then
        pr_info "repo sync to checkout source code..."
        ./.repo/repo/repo sync -l
    fi
}
    if [ ! -e $PATCH_FLAG ] ; then
        pr_info "repo sync to checkout source code..."
        ./.repo/repo/repo sync -l
    fi
function do_patch()
{
    PATCH_FLAG="$SDK_DIR/kernel-5.10/arch/arm64/configs/rockchip_defconfig"
    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
        cd $SDK_DIR/device/rockchip/common/
        patch -p1 < $PRJ_PATH/patches/4g_patch/device_rockchip.patch
    if grep -q '^CONFIG_CAN=y' $PATCH_FLAG ; then
        pr_warn "INFO: Patch for Android SDK already"
        return ;
    fi
        cd $SDK_DIR/device/google/atv/
        patch -p1 < $PRJ_PATH/patches/4g_patch/device_google.patch
    pr_info "do patch for android source code"
    cd kernel-5.10
    patch -p1 < $PRJ_PATH/patches/kernel.patch
        cd $SDK_DIR/hardware/interfaces/
        patch -p1 < $PRJ_PATH/patches/4g_patch/hardware_interfaces.patch
    cd ../vendor/rockchip/common/
    patch -p1 < $PRJ_PATH/patches/4g_patch/vendor.patch
        cd $SDK_DIR/hardware/ril/
        patch -p1 < $PRJ_PATH/patches/4g_patch/hardware_ril.patch
    cd $SDK_DIR/device/rockchip/common/
    patch -p1 < $PRJ_PATH/patches/4g_patch/device_rockchip.patch
        cd $SDK_DIR/frameworks/opt/telephony/
        patch -p1 < $PRJ_PATH/patches/4g_patch/frameworks_opt_telephony.patch
        pr_info "copy 4G RIL library..."
    cd $SDK_DIR/device/google/atv/
    patch -p1 < $PRJ_PATH/patches/4g_patch/device_google.patch
        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/hardware/interfaces/
    patch -p1 < $PRJ_PATH/patches/4g_patch/hardware_interfaces.patch
        pr_info "copy wifi firmware..."
    cd $SDK_DIR/hardware/ril/
    patch -p1 < $PRJ_PATH/patches/4g_patch/hardware_ril.patch
        cp -f $FILES_PATCH_WIFI/mt7601u.bin $SDK_DIR/vendor/rockchip/common/wifi/firmware
    cd $SDK_DIR/frameworks/opt/telephony/
    patch -p1 < $PRJ_PATH/patches/4g_patch/frameworks_opt_telephony.patch
        cd
    fi
    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 $SDK_DIR
    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
    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 +213,6 @@
do_fetch
do_patch
do_build