最近在项目里要实现出厂机身UID的存储,至于保存在哪儿是个问题。在SDK的工具包里有个SN_WERITER的工具,尝试使用屡次后发觉此软件有问题,后来电话全志开发人员,他们很肯定告诉此工具已经中止维护。node
后来就直接在flash分区中将nandj做为不可擦除的分区:android
在lichee\tools\pack\chips\sun7i\configs\android\wing-k70\sys_partition.fex中将nandj分区改成以下设置:shell
[partition]
name = private
size = 32768
keydata = 1 ////私有数据分区,从新量产数据将不丢失app
ro = 0工具
可是应用层怎么使用这个分区,那就须要挂载此分区:ui
在adb shell 中查看/dev/block/的分区情况;ip
nandj分区被连接在private,如今就须要把private连接挂载到根目录下:开发
在android\device\softwinner\wing-k70\init.sun7i.rc中增长以下操做:flash
在on early-init中建立目录private1it
mkdir /private1 0000 system system
而且增长挂载的操做:
#try to mount /private1
wait /dev/block/private
mount ext4 /dev/block/private /private1 wait noatime nosuid nodev barrier=0
setupfs /dev/block/private
umount /private1
exec /system/bin/logwrapper /system/bin/e2fsck -y /dev/block/private
exec /system/bin/busybox mount -t ext4 -o noatime,nosuid,nodev,barrier=0,journal_checksum,noauto_da_alloc /dev/block/private /private1
保存而后从新编译打包,烧录固件后在根目录下就会出现private1的目录:
后来尝试在private1中建立文件,而后从新升级固件,从新启动后文件并无删除,成功!