1
0
Fork 0

device: add OTA and virtual A/B support for nanopi5/6

Signed-off-by: hmz007 <hmz007@gmail.com>
Change-Id: I02acba5077b63ca5980cbb033b94722e145bada8
master
hmz007 9 months ago
parent a0f19a99c4
commit 8b621f8619

@ -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
}

@ -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
}

@ -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

@ -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/

@ -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

@ -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

@ -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

@ -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)

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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)

@ -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

@ -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

@ -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

@ -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

@ -1 +1 @@
device/rockchip/common/mkimage.sh
device/friendlyelec/nanopi3/mkimage.sh

@ -1 +0,0 @@
device/rockchip/common/mkimage_ab.sh
Loading…
Cancel
Save