加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

A20怎么实现FLASH分区的私有数据在固件升级时不被清除

发布时间:2020-12-15 17:27:04 所属栏目:百科 来源:网络整理
导读:最近在项目里要实现出厂机身UID的存储,至于保存在哪儿是个问题。在SDK的工具包里有个SN_WERITER的工具,尝试使用多次后发觉此软件有问题,后来电话全志开发人员,他们很确定告诉此工具已经停止维护。 后来就直接在flash分区中将nandj作为不可擦除的分区:

最近在项目里要实现出厂机身UID的存储,至于保存在哪儿是个问题。在SDK的工具包里有个SN_WERITER的工具,尝试使用多次后发觉此软件有问题,后来电话全志开发人员,他们很确定告诉此工具已经停止维护。

后来就直接在flash分区中将nandj作为不可擦除的分区:

在licheetoolspackchipssun7iconfigsandroidwing-k70sys_partition.fex中将nandj分区改为如下设置:

[partition]
??? name???????? = private
??? size???????? = 32768
??? keydata????? = 1???? ////私有数据分区,重新量产数据将不丢失

????ro?????????? = 0

?但是应用层怎么使用这个分区,那就需要挂载此分区:

在adb shell 中查看/dev/block/的分区状况;

nandj分区被链接在private,现在就需要把private链接挂载到根目录下:

在androiddevicesoftwinnerwing-k70init.sun7i.rc中增加如下操作:

在on early-init中创建目录private1

???? 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中创建文件,然后重新升级固件,重新启动后文件并没有删除,成功!

原文:http://my.oschina.net/u/1176566/blog?disp=2&catalog=402599&sort=time&p=2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读