跳到主要内容

Rockchip 防抄板技术

Rockchip 芯片提供防抄板技术,保护客户的固件、私有数据、核心代码。
防抄板技术主要用于防止客户的固件和私有数据被非授权用户非法拷贝并使用,避免被抄板造成商业上的损失。

信息

Rockchip 防抄板技术方案分为三个等级:初级方案,中级方案,高级方案。
其中初级方案可直接参照 Rockchip 官方文档 Rockchip Anti Copy Board 开发指南 在我们的产品上进行防抄板应用开发而无需修改 Bootloader。

中级方案和高级方案则依赖开启 BL32 以运行 optee 来读写 OTP 数据,可根据以下章节开启 BL32 后继续参考 Rockchip Anti Copy Board 开发指南进行防抄板应用开发。

注意

每颗芯片的 OTP 存储仅可写入一次,请谨慎操作。瑞莎不对因用户失误所产生的后果负责。

开启 BL32​

获取代码​

按照 U-boot 开发编译打包一次 Bootloader。

开启 BL32 并再次编译打包​

# bsp 仓库根目录
mv u-boot/rknext/0101-enable-package-bl32.patch.disable u-boot/rknext/0101-enable-package-bl32.patch
echo "CONFIG_OPTEE_ALWAYS_USE_SECURITY_PARTITION=y" >> u-boot/rknext/kconfig.conf
./bsp u-boot rknext

安装并烧录 Bootloader​

按照 U-boot 开发将 deb 包复制至板端并使用 setup.sh 刷写 Bootloader。

常见问题​

使用初级方案时读写数据报错?​

检查是否已经使用 rsetup 更新系统 和 U-boot。

中级方案的 mid.bin 如何生成?​

# 可将 echo 后的参数改为自己需要的数据内容
echo "00112233445566778899AABBCCDDEEFF" > mid.hex && xxd -r -p mid.hex mid.bin

使用中高级方案时读写数据报错?​

可能缺少 tee-supplicant 服务

sudo apt install tee-supplicant python3-pycryptodome optee-client-dev libteec1 gcc-arm-linux-gnueabihf
sudo systemctl enable --now tee-supplicant

可能忘记拷贝 optee 可信应用

sudo cp rk_tee_user/v2/out/ta/rk_anti_copy_board/3d4fc699-2065-7bb9-33c7-b6529b43c91a.ta /lib/optee_armtz

Rockchip 官方文档提到的 BoardProofTool、ProofDll 源码和 rk_tee_user 如何获取?​

BoardProofTool: BoardProofTool_v1.01_20240823_02.zip

ProofDll 源码: ProofDll.zip

rk_tee_user:

git clone https://gitlab.com/rockchip_linux_sdk_6.1/android/rk/platform/system/rk_tee_user.git -b develop-next

如何在板端编译 rk_tee_user?​

安装依赖:

sudo apt install tee-supplicant python3-pycryptodome optee-client-dev \
libteec1 build-essential crossbuild-essential-armhf
sudo systemctl enable --now tee-supplicant

参照下方 diff, 修改 build.sh 编译脚本:

diff --git a/v2/build.sh b/v2/build.sh
index 35a39f4..65f4168 100755
--- a/v2/build.sh
+++ b/v2/build.sh
@@ -19,10 +19,10 @@ else
if [ ! -d "$TOOLCHAIN_PREBUILTS" ]; then
TOOLCHAIN_PREBUILTS=$WORK_DIR_TOP/../../../prebuilts
fi
- TOOLCHAIN_PATH_ARM32=$TOOLCHAIN_PREBUILTS/gcc/linux-x86/arm/gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf/bin
- TOOLCHAIN_PATH_AARCH64=$TOOLCHAIN_PREBUILTS/gcc/linux-x86/aarch64/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin
- CROSS_COMPILE32=arm-none-linux-gnueabihf-
- CROSS_COMPILE64=aarch64-none-linux-gnu-
+ TOOLCHAIN_PATH_ARM32=/usr/bin/
+ TOOLCHAIN_PATH_AARCH64=/usr/bin
+ CROSS_COMPILE32=arm-linux-gnueabihf-
+ CROSS_COMPILE64=aarch64-linux-gnu-
fi

if [ -z "$AARCH64_TOOLCHAIN" ]; then

    您需要登录 GitHub 才能发表评论。如果您已登录,请忽略此消息。

    Radxa-docs © 2026 by Radxa Computer (Shenzhen) Co.,Ltd. is licensed under CC BY 4.0