diff --git a/build.sh b/build.sh index 011b731327e..a5cb9ecc9f9 100755 --- a/build.sh +++ b/build.sh @@ -204,21 +204,30 @@ function make_rockdev_img() { function build_ota() { echo "generate ota package" - local OTA_OBJ=obj/PACKAGING/target_files_intermediates/$TARGET_PRODUCT-target_files-*.zip - local OTA_PACKAGE_TARGET=$TARGET_PRODUCT-ota-*.zip + local OTA_FULL=$TARGET_PRODUCT-ota-${BUILD_NUMBER}.zip local OTA_PATH=rockdev/otapackage local ota_build_number=$(cat $OTA_PATH/build_number.txt 2>/dev/null) + local ota_target_start=$TARGET_PRODUCT-target_files-${ota_build_number}.zip + local ota_target_build=$TARGET_PRODUCT-target_files-${BUILD_NUMBER}.zip build_android dist ret=$? mkdir -p $OTA_PATH - FA_RunCmd "cp $OUT/${OTA_OBJ} $OTA_PATH/ -f" - FA_RunCmd "cp $OUT/${OTA_PACKAGE_TARGET} $OTA_PATH/ -f" - - # TODO: generate ota-update-${BUILD_NUMBER}.zip + FA_RunCmd "cp out/dist/${ota_target_build} $OTA_PATH/ -f" + FA_RunCmd "cp out/dist/${OTA_FULL} $OTA_PATH/ -f" + + if [ "$BUILD_NUMBER" != "$ota_build_number" ] && + [ -f $OTA_PATH/${ota_target_start} ] && + [ -f $OTA_PATH/${ota_target_build} ]; then + ota_from_target_files -v \ + -i $OTA_PATH/${ota_target_start} \ + $OTA_PATH/${ota_target_build} \ + $OTA_PATH/ota-update-${BUILD_NUMBER}.zip + cp device/friendlyelec/nanopi3/gen_ota_json.sh $OTA_PATH/ -f + fi - FA_RunCmd "cp out/build_number.txt $OTA_PATH/ -f" + FA_RunCmd "cp ./out/soong/build_number.txt $OTA_PATH/ -f" FA_ShowTime $ret } diff --git a/device/friendlyelec/nanopi3/build.sh b/device/friendlyelec/nanopi3/build.sh index 5d57fb8cb6e..a5cb9ecc9f9 100755 --- a/device/friendlyelec/nanopi3/build.sh +++ b/device/friendlyelec/nanopi3/build.sh @@ -186,7 +186,7 @@ function build_android() { FA_RunCmd lunch ${PRODUCT}-${VARIANT} - clean_prop_target "$(cat ./out/soong/build_number.txt)" + clean_prop_target "$(cat ./out/soong/build_number.txt 2>/dev/null)" FA_RunCmd ${MAKE} $* } @@ -204,21 +204,30 @@ function make_rockdev_img() { function build_ota() { echo "generate ota package" - local OTA_OBJ=obj/PACKAGING/target_files_intermediates/$TARGET_PRODUCT-target_files-*.zip - local OTA_PACKAGE_TARGET=$TARGET_PRODUCT-ota-*.zip + local OTA_FULL=$TARGET_PRODUCT-ota-${BUILD_NUMBER}.zip local OTA_PATH=rockdev/otapackage local ota_build_number=$(cat $OTA_PATH/build_number.txt 2>/dev/null) + local ota_target_start=$TARGET_PRODUCT-target_files-${ota_build_number}.zip + local ota_target_build=$TARGET_PRODUCT-target_files-${BUILD_NUMBER}.zip build_android dist ret=$? mkdir -p $OTA_PATH - FA_RunCmd "cp $OUT/${OTA_OBJ} $OTA_PATH/ -f" - FA_RunCmd "cp $OUT/${OTA_PACKAGE_TARGET} $OTA_PATH/ -f" - - # TODO: generate ota-update-${BUILD_NUMBER}.zip + FA_RunCmd "cp out/dist/${ota_target_build} $OTA_PATH/ -f" + FA_RunCmd "cp out/dist/${OTA_FULL} $OTA_PATH/ -f" + + if [ "$BUILD_NUMBER" != "$ota_build_number" ] && + [ -f $OTA_PATH/${ota_target_start} ] && + [ -f $OTA_PATH/${ota_target_build} ]; then + ota_from_target_files -v \ + -i $OTA_PATH/${ota_target_start} \ + $OTA_PATH/${ota_target_build} \ + $OTA_PATH/ota-update-${BUILD_NUMBER}.zip + cp device/friendlyelec/nanopi3/gen_ota_json.sh $OTA_PATH/ -f + fi - FA_RunCmd "cp out/build_number.txt $OTA_PATH/ -f" + FA_RunCmd "cp ./out/soong/build_number.txt $OTA_PATH/ -f" FA_ShowTime $ret } diff --git a/device/friendlyelec/nanopi3/config.cfg_ab b/device/friendlyelec/nanopi3/config.cfg_ab index 3b1d46cfa8e..ef1bb084665 100644 Binary files a/device/friendlyelec/nanopi3/config.cfg_ab and b/device/friendlyelec/nanopi3/config.cfg_ab differ diff --git a/device/friendlyelec/nanopi3/gen_ota_json.sh b/device/friendlyelec/nanopi3/gen_ota_json.sh new file mode 100755 index 00000000000..4529dbf7568 --- /dev/null +++ b/device/friendlyelec/nanopi3/gen_ota_json.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +ota_file=$1 +ota_json=$2 +url_base=$3 + +# adb shell getprop ro.product.releasetype +romtype="stable" + +# adb shell getprop ro.product.version +version="12.1.0" + +#---------------------------------------------------------- + +function generate_ota_json() { + local time=$(stat -c "%Y" "$1") + local size=$(stat -c "%s" "$1") + local zip_name=$(basename "$1") + local id=$(echo "$zip_name" | sha1sum | cut -d' ' -f1) + local build_id=$(cat build_number.txt) + + cat > $2 <<- EOF + { + "response": [ + { + "datetime": $time, + "filename": "$zip_name", + "id": "$id", + "romtype": "$romtype", + "size": $size, + "url": "$url_base/$zip_name", + "version": "$version", + "buildid": "$build_id" + } + ] + } + EOF +} + +#---------------------------------------------------------- + +true ${ota_json:="$ota_file.json"} +true ${url_base:="http://127.0.0.1/ota"} + +echo "OTA file: $ota_file" +echo "OTA json: $ota_json" + +if [ "$ota_file" = "empty" ]; then + cat > $ota_json <<- EOF + { + "response": [ ] + } + EOF + +elif [ ! -f "$ota_file" ]; then + echo "Error: '$ota_file': No such file" + exit 1 + +else + generate_ota_json $ota_file $ota_json +fi + +echo "-----------------------------------------------------" +cat $ota_json + diff --git a/device/friendlyelec/nanopi3/mkimage.sh b/device/friendlyelec/nanopi3/mkimage.sh new file mode 100755 index 00000000000..85c67220429 --- /dev/null +++ b/device/friendlyelec/nanopi3/mkimage.sh @@ -0,0 +1,242 @@ +#!/bin/bash +set -e + +. build/envsetup.sh >/dev/null && setpaths + +export PATH=$ANDROID_BUILD_PATHS:$PATH +TARGET_PRODUCT=`get_build_var TARGET_PRODUCT` +TARGET_DEVICE_DIR=`get_build_var TARGET_DEVICE_DIR` +TARGET_BASE_PARAMETER_IMAGE=`get_build_var TARGET_BASE_PARAMETER_IMAGE` +HIGH_RELIABLE_RECOVERY_OTA=`get_build_var HIGH_RELIABLE_RECOVERY_OTA` +BOARD_AVB_ENABLE=`get_build_var BOARD_AVB_ENABLE` +BOARD_USES_AB_IMAGE=`get_build_var BOARD_USES_AB_IMAGE` +PRODUCT_USE_DYNAMIC_PARTITIONS=`get_build_var PRODUCT_USE_DYNAMIC_PARTITIONS` +KERNEL_SRC_PATH=`get_build_var TARGET_PREBUILT_KERNEL` +KERNEL_PATH=`get_build_var PRODUCT_KERNEL_PATH` + +echo TARGET_PRODUCT=$TARGET_PRODUCT +echo BOARD_AVB_ENABLE=$BOARD_AVB_ENABLE +echo BOARD_USES_AB_IMAGE=$BOARD_USES_AB_IMAGE +echo HIGH_RELIABLE_RECOVERY_OTA=$HIGH_RELIABLE_RECOVERY_OTA +echo ---------------------------------- + +IMAGE_PATH=rockdev/Image-$TARGET_PRODUCT +UBOOT_PATH=u-boot +rm -rf $IMAGE_PATH +mkdir -p $IMAGE_PATH + +PARAMETER=${TARGET_DEVICE_DIR}/parameter.txt +FLASH_CONFIG_FILE=${TARGET_DEVICE_DIR}/config.cfg +if [ "$BOARD_USES_AB_IMAGE" = "true" ]; then + FLASH_CONFIG_FILE=${TARGET_DEVICE_DIR}/config.cfg_ab +fi + +[ $(id -u) -eq 0 ] || FAKEROOT=fakeroot + +BOOT_OTA="ota" +TARGET="withoutkernel" +[ -z "$1" ] || TARGET=$1 +[ $TARGET != $BOOT_OTA -a $TARGET != "withoutkernel" ] && echo "unknow target[${TARGET}],exit!" && exit 0 + +if [ ! -f $OUT/kernel ]; then + echo "kernel image not fount! [$OUT/kernel]" + BOARD_CONFIG=device/rockchip/common/device.mk + read -p "copy kernel from TARGET_PREBUILT_KERNEL[$KERNEL_SRC_PATH] (y/n) n to exit?" + if [ "$REPLY" == "y" ]; then + [ -f $KERNEL_SRC_PATH ] || \ + echo -n "fatal! TARGET_PREBUILT_KERNEL not eixit! " || \ + echo -n "check you configuration in [${BOARD_CONFIG}] " || exit 0 + + cp ${KERNEL_SRC_PATH} $OUT/kernel + else + exit 0 + fi +fi + +copy_images() { + if [ ! -f "$1" ]; then + echo "skip copy images: $1" + else + echo "create $2..." + cp -a $1 $2 + echo "done." + fi +} + +copy_images_from_out() { + copy_images $OUT/$1 $IMAGE_PATH/$1 +} + +echo "create dtbo.img..." +if [ ! -f "$OUT/dtbo.img" ]; then + BOARD_DTBO_IMG=$OUT/rebuild-dtbo.img +else + BOARD_DTBO_IMG=$OUT/dtbo.img +fi +cp -a $BOARD_DTBO_IMG $IMAGE_PATH/dtbo.img +echo "done." + +copy_images $KERNEL_PATH/resource.img $IMAGE_PATH/resource.img +copy_images_from_out boot.img +copy_images_from_out boot-debug.img +copy_images_from_out vendor_boot.img +copy_images_from_out vendor_boot-debug.img +copy_images_from_out recovery.img +copy_images_from_out super.img +copy_images $OUT/userdata.img $IMAGE_PATH/data.img + +if [ "$PRODUCT_USE_DYNAMIC_PARTITIONS" != "true" ]; then + copy_images_from_out system.img + copy_images_from_out system_ext.img + copy_images_from_out vendor.img + copy_images_from_out odm.img + copy_images_from_out product.img +fi + +echo "create vbmeta.img..." +if [ "$BOARD_AVB_ENABLE" = "true" ]; then + cp -a $OUT/vbmeta.img $IMAGE_PATH/vbmeta.img +else + echo "BOARD_AVB_ENABLE is false, use default vbmeta.img" + cp -a device/rockchip/common/vbmeta.img $IMAGE_PATH/vbmeta.img +fi + +echo -n "create misc.img.... " +cp -a rkst/Image/misc.img $IMAGE_PATH/misc.img +cp -a rkst/Image/pcba_small_misc.img $IMAGE_PATH/pcba_small_misc.img +cp -a rkst/Image/pcba_whole_misc.img $IMAGE_PATH/pcba_whole_misc.img +echo "done." + +if [ -f $UBOOT_PATH/uboot.img ]; then + echo "create uboot.img..." + cp -a $UBOOT_PATH/uboot.img $IMAGE_PATH/uboot.img +else + echo "$UBOOT_PATH/uboot.img not fount! Please make it from $UBOOT_PATH first!" +fi + +if [ -f $UBOOT_PATH/trust_nand.img ]; then + echo "create trust.img..." + cp -a $UBOOT_PATH/trust_nand.img $IMAGE_PATH/trust.img +elif [ -f $UBOOT_PATH/trust_with_ta.img ]; then + echo "create trust.img..." + cp -a $UBOOT_PATH/trust_with_ta.img $IMAGE_PATH/trust.img +elif [ -f $UBOOT_PATH/trust.img ]; then + echo "create trust.img..." + cp -a $UBOOT_PATH/trust.img $IMAGE_PATH/trust.img +else + echo "$UBOOT_PATH/trust.img not fount! Please make it from $UBOOT_PATH first!" +fi + +if [ "$HIGH_RELIABLE_RECOVERY_OTA" = "true" ]; then + if [ -f $UBOOT_PATH/uboot_ro.img ]; then + echo -n "HIGH_RELIABLE_RECOVERY_OTA is true. create uboot_ro.img..." + cp -a $UBOOT_PATH/uboot_ro.img $IMAGE_PATH/uboot_ro.img + cp -a $IMAGE_PATH/trust.img $IMAGE_PATH/trust_ro.img + echo "done." + else + echo "$UBOOT_PATH/uboot_ro.img not fount! Please make it from $UBOOT_PATH first!" + fi +fi + +if [ -f $UBOOT_PATH/*_loader_*.bin ]; then + echo "create loader..." + cp -a $UBOOT_PATH/*_loader_*.bin $IMAGE_PATH/MiniLoaderAll.bin +else + if [ -f $UBOOT_PATH/*loader*.bin ]; then + echo "create loader..." + cp -a $UBOOT_PATH/*loader*.bin $IMAGE_PATH/MiniLoaderAll.bin + elif [ "$TARGET_PRODUCT" == "px3" -a -f $UBOOT_PATH/RKPX3Loader_miniall.bin ]; then + echo "create loader..." + cp -a $UBOOT_PATH/RKPX3Loader_miniall.bin $IMAGE_PATH/MiniLoaderAll.bin + else + echo "$UBOOT_PATH/*MiniLoaderAll_*.bin not fount! Please make it from $UBOOT_PATH first!" + fi +fi + +if [ -f $FLASH_CONFIG_FILE ]; then + echo "create config.cfg..." + cp -a $FLASH_CONFIG_FILE $IMAGE_PATH/config.cfg +else + echo "$FLASH_CONFIG_FILE not fount!" + fi + +if [ -f $PARAMETER ]; then + if [ "$HIGH_RELIABLE_RECOVERY_OTA" = "true" ]; then + echo -n "create parameter...HIGH_RELIABLE_RECOVERY_OTA is ture. " + echo -n "create parameter from hrr..." + if [ -f $PARAMETER ]; then + cp -a ${TARGET_DEVICE_DIR}/parameter_hrr.txt $IMAGE_PATH/parameter.txt + echo "done." + else + echo "${TARGET_DEVICE_DIR}/parameter_hrr.txt not fount! Please make it from ${TARGET_DEVICE_DIR} first!" + fi + else + echo -n "create parameter..." + cp -a $PARAMETER $IMAGE_PATH/parameter.txt + echo "done." + fi +else + if [ -f $OUT/parameter.txt ]; then + cp -a $OUT/parameter.txt $IMAGE_PATH/parameter.txt + else + echo "$PARAMETER not fount!" + fi +fi + +SHARED_LIBRARIES_DIR=out/host/linux-x86/lib64 +JAVA_LIBRARIES_DIR=out/host/linux-x86/framework +OTA_KEY_DIR=build/target/product/security + +if [ $TARGET == $BOOT_OTA ]; then + echo "create update_loader.zip.." + python build/tools/releasetools/package_loader_zip.py $IMAGE_PATH/MiniLoaderAll.bin $IMAGE_PATH/update_loader_unsigned.zip + java -Djava.library.path=$SHARED_LIBRARIES_DIR -jar $JAVA_LIBRARIES_DIR/signapk.jar -w $OTA_KEY_DIR/testkey.x509.pem $OTA_KEY_DIR/testkey.pk8 $IMAGE_PATH/update_loader_unsigned.zip $IMAGE_PATH/update_loader.zip + rm $IMAGE_PATH/update_loader_unsigned.zip + echo "done." +fi + +if [ "$TARGET_BASE_PARAMETER_IMAGE"x != ""x ]; then + if [ -f $TARGET_BASE_PARAMETER_IMAGE ]; then + echo -n "create baseparameter..." + cp -a $TARGET_BASE_PARAMETER_IMAGE $IMAGE_PATH/baseparameter.img + echo "done." + else + echo "$TARGET_BASE_PARAMETER_IMAGE not fount!" + fi +fi + +if [ $TARGET == $BOOT_OTA ]; then + if [ "$PRODUCT_USE_DYNAMIC_PARTITIONS" = "true" ]; then + cp -rf $OUT/obj/PACKAGING/super.img_intermediates/super.img $IMAGE_PATH/ + fi + echo -n "create system.img boot.img oem.img vendor.img dtbo.img vbmeta.img for OTA..." + cp -rf $OUT/obj/PACKAGING/target_files_intermediates/*-target_files*/IMAGES/*.img $IMAGE_PATH/ + rm -rf $IMAGE_PATH/cache.img + rm -rf $IMAGE_PATH/recovery-two-step.img + if [ "$PRODUCT_USE_DYNAMIC_PARTITIONS" = "true" ]; then + rm -rf $IMAGE_PATH/super_empty.img + fi + if [ "$BOARD_AVB_ENABLE" = "true" ]; then + echo "AVB Enable" + cp -rf $OUT/obj/PACKAGING/target_files_intermediates/*-target_files*/VENDOR/etc/recovery.img $IMAGE_PATH/ + fi + echo "done." +fi + +IS_EBOOK=`get_build_var BUILD_WITH_RK_EBOOK` +ebook_logo_tool=rkbin/tools/bmp2gray16 +if [ $IS_EBOOK == "true" ]; then + if [ -f ${TARGET_DEVICE_DIR}/waveform.img ]; then + cp ${TARGET_DEVICE_DIR}/waveform.img $IMAGE_PATH/ + fi + if [ -f $ebook_logo_tool ]; then + EINK_LOGO_PATH=${TARGET_DEVICE_DIR}/eink_logo/ + echo -n "create logo.img for uboot/charging/kernel logo" + $ebook_logo_tool --uboot-logo $EINK_LOGO_PATH/uboot_logo/uboot.bmp --kernel-logo $EINK_LOGO_PATH/kernel_logo/kernel.bmp --charge-logo $EINK_LOGO_PATH/uboot_logo/battery_0.bmp $EINK_LOGO_PATH/uboot_logo/battery_1.bmp $EINK_LOGO_PATH/uboot_logo/battery_2.bmp $EINK_LOGO_PATH/uboot_logo/battery_3.bmp $EINK_LOGO_PATH/uboot_logo/battery_4.bmp $EINK_LOGO_PATH/uboot_logo/battery_5.bmp $EINK_LOGO_PATH/uboot_logo/battery_fail.bmp --poweroff-logo $EINK_LOGO_PATH/uboot_logo/poweroff.bmp --output $IMAGE_PATH/logo.img + fi +fi + +echo ---------------------------------- +echo IMAGE_PATH: $IMAGE_PATH +chmod a+r -R $IMAGE_PATH/ + diff --git a/device/rockchip/common/build/rockchip/Partitions.mk b/device/rockchip/common/build/rockchip/Partitions.mk index b065c5591a9..8e679b89403 100644 --- a/device/rockchip/common/build/rockchip/Partitions.mk +++ b/device/rockchip/common/build/rockchip/Partitions.mk @@ -56,7 +56,7 @@ else ifeq ($(BUILD_WITH_GO_OPT), true) BOARD_SUPER_PARTITION_SIZE ?= 2516582400 else - BOARD_SUPER_PARTITION_SIZE ?= 3263168512 + BOARD_SUPER_PARTITION_SIZE ?= 3263168512 endif BOARD_ROCKCHIP_DYNAMIC_PARTITIONS_SIZE ?= $(shell expr $(BOARD_SUPER_PARTITION_SIZE) - 4194304) else diff --git a/device/rockchip/common/build/rockchip/RebuildParameter.mk b/device/rockchip/common/build/rockchip/RebuildParameter.mk index 9e419a60fd2..757cbeaab35 100644 --- a/device/rockchip/common/build/rockchip/RebuildParameter.mk +++ b/device/rockchip/common/build/rockchip/RebuildParameter.mk @@ -8,6 +8,10 @@ else partition_list := security:4M,uboot:4M,trust:4M,misc:4M endif # BOARD_USES_AB_IMAGE +ifneq ($(strip $(BOARD_ROCKCHIP_BASE_PARTITION)),) +partition_list := $(BOARD_ROCKCHIP_BASE_PARTITION) +endif + ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true) # Header V3, add vendor_boot and resource. ifeq (1,$(strip $(shell expr $(BOARD_BOOT_HEADER_VERSION) \>= 3))) @@ -22,13 +26,19 @@ endif # Header V3 partition_list := $(partition_list),dtbo:$(BOARD_DTBOIMG_PARTITION_SIZE),vbmeta:4M,boot:$(BOARD_BOOTIMAGE_PARTITION_SIZE),recovery:$(BOARD_RECOVERYIMAGE_PARTITION_SIZE) endif # BOARD_USES_AB_IMAGE -partition_list := $(partition_list),backup:372M,cache:$(BOARD_CACHEIMAGE_PARTITION_SIZE),metadata:16M +ifneq ($(strip $(BOARD_WITH_BACKUP_PARTITION)),) +partition_list := $(partition_list),$(BOARD_WITH_BACKUP_PARTITION) +else +partition_list := $(partition_list),backup:372M +endif + +partition_list := $(partition_list),cache:$(BOARD_CACHEIMAGE_PARTITION_SIZE),metadata:16M ifeq ($(strip $(BUILD_WITH_GOOGLE_FRP)), true) partition_list := $(partition_list),frp:512K endif -ifneq ($(strip $(BOARD_WITH_SPECIAL_PARTITIONS)), ) +ifneq ($(strip $(BOARD_WITH_SPECIAL_PARTITIONS)),) partition_list := $(partition_list),$(BOARD_WITH_SPECIAL_PARTITIONS) endif diff --git a/device/rockchip/rk356x/nanopi5/BoardConfig.mk b/device/rockchip/rk356x/nanopi5/BoardConfig.mk index 1c31948b687..b2c3ef14f96 100644 --- a/device/rockchip/rk356x/nanopi5/BoardConfig.mk +++ b/device/rockchip/rk356x/nanopi5/BoardConfig.mk @@ -47,19 +47,27 @@ BOARD_INCLUDE_RECOVERY_DTBO := BOARD_PREBUILT_DTBOIMAGE := device/rockchip/rk356x/nanopi5/dtbo.img TARGET_RECOVERY_FSTAB := device/rockchip/rk356x/nanopi5/recovery.fstab -BOARD_CACHEIMAGE_PARTITION_SIZE := 134217728 +BOARD_CACHEIMAGE_PARTITION_SIZE := 281018368 BOARD_SUPER_PARTITION_SIZE := 2684354560 BOARD_WITH_BACKUP_PARTITION := backup:128M BOARD_WITH_SPECIAL_PARTITIONS := baseparameter:4M # AB image definition -BOARD_USES_AB_IMAGE := false -BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := false +BOARD_USES_AB_IMAGE ?= true +BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := true ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true) - TARGET_ROCKCHIP_PCBATEST := false + PRODUCT_UBOOT_CONFIG := nanopi5_ab + + AB_OTA_UPDATER := true + BOARD_USES_RECOVERY_AS_BOOT := true BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864 - BOARD_SUPER_PARTITION_SIZE := 4294967296 - include device/rockchip/common/BoardConfig_AB.mk + BOARD_SUPER_PARTITION_SIZE := 3355443200 + BOARD_ROCKCHIP_BASE_PARTITION := security:4M,uboot_a:4M,misc:4M + BOARD_ROCKCHIP_DYNAMIC_PARTITIONS_SIZE := $(shell expr $(BOARD_SUPER_PARTITION_SIZE) - 4194304) + + TARGET_NO_RECOVERY := true + TARGET_ROCKCHIP_PCBATEST := false + TARGET_RECOVERY_FSTAB := device/rockchip/rk356x/nanopi5/recovery.fstab_AB endif diff --git a/device/rockchip/rk356x/nanopi5/device.mk b/device/rockchip/rk356x/nanopi5/device.mk index 15cba6fa066..0e2327f11ac 100644 --- a/device/rockchip/rk356x/nanopi5/device.mk +++ b/device/rockchip/rk356x/nanopi5/device.mk @@ -21,10 +21,11 @@ include device/rockchip/rk356x/nanopi5/BoardConfig.mk # OTA PRODUCT_PROPERTY_OVERRIDES += \ - ro.product.version=12.0.1 \ + ro.updater.next_device=rk3568 \ + ro.product.version=12.1.0 \ ro.product.releasetype=stable -#PRODUCT_PACKAGES += \ +PRODUCT_PACKAGES += \ Updater HAVE_PREBUILT_DTBO := $(shell test -f $(BOARD_PREBUILT_DTBOIMAGE) && echo true) diff --git a/device/rockchip/rk356x/nanopi5/fstab.in b/device/rockchip/rk356x/nanopi5/fstab.in index 50336ff40ee..f8a367cb9b1 100644 --- a/device/rockchip/rk356x/nanopi5/fstab.in +++ b/device/rockchip/rk356x/nanopi5/fstab.in @@ -24,4 +24,4 @@ ${_block_prefix}odm /odm ext4 ro,barrier=1 ${_flags} # Full disk encryption has less effect on rk3588, so default to enable this. #/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs # for ext4 -/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block +/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=::inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,reservedsize=128M,checkpoint=fs diff --git a/device/rockchip/rk356x/nanopi5_box/BoardConfig.mk b/device/rockchip/rk356x/nanopi5_box/BoardConfig.mk index c76059f5453..a2cf6bdb382 100644 --- a/device/rockchip/rk356x/nanopi5_box/BoardConfig.mk +++ b/device/rockchip/rk356x/nanopi5_box/BoardConfig.mk @@ -50,18 +50,27 @@ BOARD_INCLUDE_RECOVERY_DTBO := BOARD_PREBUILT_DTBOIMAGE := device/rockchip/rk356x/nanopi5_box/dtbo.img TARGET_RECOVERY_FSTAB := device/rockchip/rk356x/nanopi5_box/recovery.fstab -BOARD_CACHEIMAGE_PARTITION_SIZE := 134217728 +BOARD_CACHEIMAGE_PARTITION_SIZE := 281018368 BOARD_SUPER_PARTITION_SIZE := 2684354560 BOARD_WITH_BACKUP_PARTITION := backup:128M BOARD_WITH_SPECIAL_PARTITIONS := baseparameter:4M # AB image definition -BOARD_USES_AB_IMAGE := false -BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := false +BOARD_USES_AB_IMAGE ?= true +BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := true ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true) + PRODUCT_UBOOT_CONFIG := nanopi5_ab + + AB_OTA_UPDATER := true + BOARD_USES_RECOVERY_AS_BOOT := true BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864 - BOARD_SUPER_PARTITION_SIZE := 4294967296 - include device/rockchip/common/BoardConfig_AB.mk + BOARD_SUPER_PARTITION_SIZE := 3355443200 + BOARD_ROCKCHIP_BASE_PARTITION := security:4M,uboot_a:4M,misc:4M + BOARD_ROCKCHIP_DYNAMIC_PARTITIONS_SIZE := $(shell expr $(BOARD_SUPER_PARTITION_SIZE) - 4194304) + + TARGET_NO_RECOVERY := true + TARGET_ROCKCHIP_PCBATEST := false + TARGET_RECOVERY_FSTAB := device/rockchip/rk356x/nanopi5_box/recovery.fstab_AB endif diff --git a/device/rockchip/rk356x/nanopi5_box/device.mk b/device/rockchip/rk356x/nanopi5_box/device.mk index 41c7ed0edfa..9aa4a84a984 100644 --- a/device/rockchip/rk356x/nanopi5_box/device.mk +++ b/device/rockchip/rk356x/nanopi5_box/device.mk @@ -21,6 +21,15 @@ TARGET_BOARD_PLATFORM_PRODUCT := box include device/rockchip/rk356x/nanopi5_box/BoardConfig.mk +# OTA +PRODUCT_PROPERTY_OVERRIDES += \ + ro.updater.next_device=rk3568-box \ + ro.product.version=12.1.0 \ + ro.product.releasetype=stable + +PRODUCT_PACKAGES += \ + Updater + HAVE_PREBUILT_DTBO := $(shell test -f $(BOARD_PREBUILT_DTBOIMAGE) && echo true) ifneq ($(HAVE_PREBUILT_DTBO),true) PRODUCT_DTBO_TEMPLATE := device/rockchip/rk356x/nanopi5_box/dt-overlay.in diff --git a/device/rockchip/rk356x/nanopi5_box/fstab_box.in b/device/rockchip/rk356x/nanopi5_box/fstab_box.in index 50336ff40ee..f8a367cb9b1 100644 --- a/device/rockchip/rk356x/nanopi5_box/fstab_box.in +++ b/device/rockchip/rk356x/nanopi5_box/fstab_box.in @@ -24,4 +24,4 @@ ${_block_prefix}odm /odm ext4 ro,barrier=1 ${_flags} # Full disk encryption has less effect on rk3588, so default to enable this. #/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs # for ext4 -/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block +/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=::inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,reservedsize=128M,checkpoint=fs diff --git a/device/rockchip/rk3588/nanopi6/BoardConfig.mk b/device/rockchip/rk3588/nanopi6/BoardConfig.mk index d3f208d6775..4ea5f2ad7ed 100644 --- a/device/rockchip/rk3588/nanopi6/BoardConfig.mk +++ b/device/rockchip/rk3588/nanopi6/BoardConfig.mk @@ -48,19 +48,27 @@ BOARD_INCLUDE_RECOVERY_DTBO := BOARD_PREBUILT_DTBOIMAGE := device/rockchip/rk3588/nanopi6/dtbo.img TARGET_RECOVERY_FSTAB := device/rockchip/rk3588/nanopi6/recovery.fstab -BOARD_CACHEIMAGE_PARTITION_SIZE := 134217728 +BOARD_CACHEIMAGE_PARTITION_SIZE := 281018368 BOARD_SUPER_PARTITION_SIZE := 2684354560 BOARD_WITH_BACKUP_PARTITION := backup:128M BOARD_WITH_SPECIAL_PARTITIONS := baseparameter:4M # AB image definition -BOARD_USES_AB_IMAGE := false -BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := false +BOARD_USES_AB_IMAGE ?= true +BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := true ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true) - TARGET_ROCKCHIP_PCBATEST := false + PRODUCT_UBOOT_CONFIG := nanopi6_ab + + AB_OTA_UPDATER := true + BOARD_USES_RECOVERY_AS_BOOT := true BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864 - BOARD_SUPER_PARTITION_SIZE := 4294967296 - include device/rockchip/common/BoardConfig_AB.mk + BOARD_SUPER_PARTITION_SIZE := 3355443200 + BOARD_ROCKCHIP_BASE_PARTITION := security:4M,uboot_a:4M,misc:4M + BOARD_ROCKCHIP_DYNAMIC_PARTITIONS_SIZE := $(shell expr $(BOARD_SUPER_PARTITION_SIZE) - 4194304) + + TARGET_NO_RECOVERY := true + TARGET_ROCKCHIP_PCBATEST := false + TARGET_RECOVERY_FSTAB := device/rockchip/rk3588/nanopi6/recovery.fstab_AB endif diff --git a/device/rockchip/rk3588/nanopi6/device.mk b/device/rockchip/rk3588/nanopi6/device.mk index 146afdfbb9c..04dc9fb5de6 100644 --- a/device/rockchip/rk3588/nanopi6/device.mk +++ b/device/rockchip/rk3588/nanopi6/device.mk @@ -21,10 +21,11 @@ include device/rockchip/rk3588/nanopi6/BoardConfig.mk # OTA PRODUCT_PROPERTY_OVERRIDES += \ - ro.product.version=12.0.1 \ + ro.updater.next_device=rk3588 \ + ro.product.version=12.1.0 \ ro.product.releasetype=stable -#PRODUCT_PACKAGES += \ +PRODUCT_PACKAGES += \ Updater HAVE_PREBUILT_DTBO := $(shell test -f $(BOARD_PREBUILT_DTBOIMAGE) && echo true) diff --git a/device/rockchip/rk3588/nanopi6/fstab.in b/device/rockchip/rk3588/nanopi6/fstab.in index 50336ff40ee..f8a367cb9b1 100644 --- a/device/rockchip/rk3588/nanopi6/fstab.in +++ b/device/rockchip/rk3588/nanopi6/fstab.in @@ -24,4 +24,4 @@ ${_block_prefix}odm /odm ext4 ro,barrier=1 ${_flags} # Full disk encryption has less effect on rk3588, so default to enable this. #/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs # for ext4 -/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block +/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=::inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,reservedsize=128M,checkpoint=fs diff --git a/device/rockchip/rk3588/nanopi6_box/BoardConfig.mk b/device/rockchip/rk3588/nanopi6_box/BoardConfig.mk index b1a8b47c79c..17b2d5d8302 100644 --- a/device/rockchip/rk3588/nanopi6_box/BoardConfig.mk +++ b/device/rockchip/rk3588/nanopi6_box/BoardConfig.mk @@ -50,18 +50,27 @@ BOARD_INCLUDE_RECOVERY_DTBO := BOARD_PREBUILT_DTBOIMAGE := device/rockchip/rk3588/nanopi6_box/dtbo.img TARGET_RECOVERY_FSTAB := device/rockchip/rk3588/nanopi6_box/recovery.fstab -BOARD_CACHEIMAGE_PARTITION_SIZE := 134217728 +BOARD_CACHEIMAGE_PARTITION_SIZE := 281018368 BOARD_SUPER_PARTITION_SIZE := 2684354560 BOARD_WITH_BACKUP_PARTITION := backup:128M BOARD_WITH_SPECIAL_PARTITIONS := baseparameter:4M # AB image definition -BOARD_USES_AB_IMAGE := false -BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := false +BOARD_USES_AB_IMAGE ?= true +BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := true ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true) + PRODUCT_UBOOT_CONFIG := nanopi6_ab + + AB_OTA_UPDATER := true + BOARD_USES_RECOVERY_AS_BOOT := true BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864 - BOARD_SUPER_PARTITION_SIZE := 4294967296 - include device/rockchip/common/BoardConfig_AB.mk + BOARD_SUPER_PARTITION_SIZE := 3355443200 + BOARD_ROCKCHIP_BASE_PARTITION := security:4M,uboot_a:4M,misc:4M + BOARD_ROCKCHIP_DYNAMIC_PARTITIONS_SIZE := $(shell expr $(BOARD_SUPER_PARTITION_SIZE) - 4194304) + + TARGET_NO_RECOVERY := true + TARGET_ROCKCHIP_PCBATEST := false + TARGET_RECOVERY_FSTAB := device/rockchip/rk3588/nanopi6_box/recovery.fstab_AB endif diff --git a/device/rockchip/rk3588/nanopi6_box/device.mk b/device/rockchip/rk3588/nanopi6_box/device.mk index a3cf758bed9..050d1c9ea57 100644 --- a/device/rockchip/rk3588/nanopi6_box/device.mk +++ b/device/rockchip/rk3588/nanopi6_box/device.mk @@ -21,6 +21,15 @@ TARGET_BOARD_PLATFORM_PRODUCT := box include device/rockchip/rk3588/nanopi6_box/BoardConfig.mk +# OTA +PRODUCT_PROPERTY_OVERRIDES += \ + ro.updater.next_device=rk3588-box \ + ro.product.version=12.1.0 \ + ro.product.releasetype=stable + +PRODUCT_PACKAGES += \ + Updater + HAVE_PREBUILT_DTBO := $(shell test -f $(BOARD_PREBUILT_DTBOIMAGE) && echo true) ifneq ($(HAVE_PREBUILT_DTBO),true) PRODUCT_DTBO_TEMPLATE := device/rockchip/rk3588/nanopi6_box/dt-overlay.in diff --git a/device/rockchip/rk3588/nanopi6_box/fstab_box.in b/device/rockchip/rk3588/nanopi6_box/fstab_box.in index 50336ff40ee..f8a367cb9b1 100644 --- a/device/rockchip/rk3588/nanopi6_box/fstab_box.in +++ b/device/rockchip/rk3588/nanopi6_box/fstab_box.in @@ -24,4 +24,4 @@ ${_block_prefix}odm /odm ext4 ro,barrier=1 ${_flags} # Full disk encryption has less effect on rk3588, so default to enable this. #/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs # for ext4 -/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block +/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=::inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,reservedsize=128M,checkpoint=fs diff --git a/mkimage.sh b/mkimage.sh index acd8e01dfb8..4ba9931453f 120000 --- a/mkimage.sh +++ b/mkimage.sh @@ -1 +1 @@ -device/rockchip/common/mkimage.sh \ No newline at end of file +device/friendlyelec/nanopi3/mkimage.sh \ No newline at end of file diff --git a/mkimage_ab.sh b/mkimage_ab.sh deleted file mode 120000 index fc5e7bda0da..00000000000 --- a/mkimage_ab.sh +++ /dev/null @@ -1 +0,0 @@ -device/rockchip/common/mkimage_ab.sh \ No newline at end of file