A20怎麼實現FLASH分區的私有數據在固件升級時不被清除

最近在項目裏要實現出廠機身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中建立文件,而後從新升級固件,從新啓動後文件並無刪除,成功!

相關文章
相關標籤/搜索