跳到主要内容

Vendor SN 读写

这里说明 Neardi Pi 3 如何在 Linux 系统下读取和写入 Rockchip Vendor Storage 里的 SN 号。

Rockchip Windows 工具 RKDevInfoWriteTool 写入的 SN 就保存在 Vendor Storage 里。RK3576 Linux 系统下,也可以通过 rktoolkit 在板端读写同一块数据。

警告

SN 号通常用于量产、售后和设备追踪。客户设备上的 SN 不建议随意覆盖。

下载 Demo

先下载 rktoolkit demo:

git clone http://git.neardi.com/app/linux/rockchip/rktoolkit -b neardi-rk3576-linux-6.1-stan-rkr6
cd rktoolkit

SN 读写 demo 文件在:

sample/read_vendor_sn.c
sample/write_vendor_sn.c

Vendor Storage 相关接口在:

vendor_storage.h
vendor_storage.c

基本原理

SN 在 Vendor Storage 中使用的 vendor item ID 是 1

#define VENDOR_SN_ID 1

程序访问的设备节点是:

/dev/vendor_storage

读写时调用:

rkvendor_read(VENDOR_SN_ID, ...)
rkvendor_write(VENDOR_SN_ID, ...)

普通用户通常没有 /dev/vendor_storage 的访问权限,所以下面的命令默认使用 sudo

板端编译

如果系统里没有编译工具,先安装:

sudo apt update
sudo apt install -y gcc make

编译读取工具:

gcc -DBUILD_LIB_VENDOR_STORAGE -I. \
sample/read_vendor_sn.c vendor_storage.c \
-o read_vendor_sn

编译写入工具:

gcc -DBUILD_LIB_VENDOR_STORAGE -I. \
sample/write_vendor_sn.c vendor_storage.c \
-o write_vendor_sn

确认程序有执行权限:

chmod 755 read_vendor_sn write_vendor_sn

不要对可执行程序使用 chmod 666666 会去掉执行权限,后面运行时会报 Permission denied

读取 SN

执行:

sudo ./read_vendor_sn

示例输出:

nearditest20260604001

如果不加 sudo,可能会看到:

vendor_storage open fail
failed to read SN from /dev/vendor_storage

写入 SN

写入新的 SN:

sudo ./write_vendor_sn nearditest20260604002

示例输出:

write SN ok: nearditest20260604002

再读一次确认:

sudo ./read_vendor_sn

示例输出:

nearditest20260604002

PC 端通过 ADB 读写

PC 通过 Type-C 连接开发板 OTG/Device 口后,先确认设备连接正常:

adb devices

PC 端读取 SN:

adb shell "sudo /home/neardi/rktoolkit/read_vendor_sn"

PC 端写入 SN:

adb shell "sudo /home/neardi/rktoolkit/write_vendor_sn nearditest20260604003"

再次读取确认:

adb shell "sudo /home/neardi/rktoolkit/read_vendor_sn"

示例结果:

nearditest20260604002
write SN ok: nearditest20260604003
nearditest20260604003

权限说明

如果只是临时测试,可以修改设备节点权限:

sudo chmod 666 /dev/vendor_storage

之后可以不加 sudo 执行:

./read_vendor_sn
./write_vendor_sn nearditest20260604004

这个权限修改重启后通常会失效。正式产品中建议通过系统服务、udev 规则,或 root 权限程序来访问 Vendor Storage。