MTK有一个特殊的存储区域,叫NVRam,这部分存储器用来保存重要的数据,如:校准参数、IMEI写号、FactoryMode等,即使刷机,只要不格式化下载,这些数据还在,恢复出厂设置也不会被擦除。今天就来与大家探讨NVRam的具体用法

一、底层,include我都省掉了

1.添加id

vendor/mediatek/proprietary/custom/xxxx/cgen/inc/Custom_NvRam_LID.h

typedef enum
{
    AP_CFG_RDCL_FILE_AUDIO_LID=AP_CFG_CUSTOM_BEGIN_LID, //AP_CFG_CUSTOM_BEGIN_LID是另外一个枚举类型

-----------------------

AP_CFG_CUSTOM_FILE_CUSTOM_CALL_CALCULATE_LID, //新定义的id,id序号为73(从上往下数,这个id号很重要)

AP_CFG_CUSTOM_FILE_MAX_LID,
} CUSTOM_CFG_FILE_LID;

-----------------------

#define AP_CFG_CUSTOM_FILE_CUSTOM_CALL_CALCULATE_LID_VERNO      "000"  //定义版本号

2.申请空间

vendor/mediatek/proprietary/external/nvram/libcustom_nvram/CFG_file_info.c

FileName aBackupToBinRegion[]=
{

-----------------

{"Custom_CallCal",AP_CFG_CUSTOM_FILE_CUSTOM_CALL_CALCULATE_LID},

};

vendor/mediatek/proprietary/custom/xxx/cgen/inc/CFG_file_info_custom.h

const TCFG_FILE g_akCFG_File_Custom[]=
    {

------------------


            "/data/nvram/APCFG/APRDEB/CUSTOM1",       VER(AP_CFG_CUSTOM_FILE_CUSTOM1_LID),         CFG_FILE_CUSTOM1_REC_SIZE,
            CFG_FILE_CUSTOM1_REC_TOTAL,                   DEFAULT_ZERO,                                   (char *)&stCustom1Default, DataReset, NULL
        },

vendor/mediatek/proprietary/custom/xxx/cgen/inc/Custom_NvRam_data_item.h

LID_BIT VER_LID(AP_CFG_CUSTOM_FILE_CUSTOM_CALL_CALCULATE_LID)
      File_Custom_CallCalculate_Struct *CFG_FILE_CUSTOM_CALL_CALCULATE_TOTAL
{

};

3.定义类型及默认值

vendor/mediatek/proprietary/custom/xxx/cgen/cfgfileinc/CFG_Custom_CallCalculate_File.h

CFG_Custom_CallCalculate_File.h是新添加的,定义一个char型的数组

typedef struct
{
unsigned char Callresult[16];
}File_Custom_CallCalculate_Struct;

#define CFG_FILE_CUSTOM_CALL_CALCULATE_SIZE    sizeof(File_Custom_CallCalculate_Struct)
#define CFG_FILE_CUSTOM_CALL_CALCULATE_TOTAL   1

vendor/mediatek/proprietary/custom/xxx/cgen/cfgdefault/CFG_Custom_CallCalculate_Default.h

CFG_Custom_CallCalculate_Default.h是新添加的,用来初始化数组

File_Custom_CallCalculate_Struct stCustomCallDefault =
{
   0x00//, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00 
};

到此,底层部分的工作做好了

android5.0源码开发之NVRam存储,恢复出厂设置数据不被擦除--上篇相关推荐

  1. [网络资源]ERP5.0源码开发文档合集.rar 28.84M

    ERP5.0源码开发文档合集.rar 2010-11-27 08:39        291206        262438  ERP5.0总裁查询模块.pdf 2010-11-27 01:14   ...

  2. Android5.0源码分析—— Zygote进程分析

    1      Zygote简介 Android的应用程序一般都是由Java语言编写而成的,这样的应用程序需要运行在独自的Dalvik虚拟机之上(当然,5.0好像默认了ART了).但是,如果在每一个进程 ...

  3. Android6.0源码分析—— Zygote进程分析(补充)

    原文地址: http://blog.csdn.net/a34140974/article/details/50915307 此博文为<Android5.0源码分析-- Zygote进程分析> ...

  4. Android 8.0学习(32)---Android 8.0源码目录结构详解

    Android 8.0源码目录结构详解 android的移植按如下流程:     (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     (2)正确挂载文件系统 ...

  5. 第三篇 - EOS DAWN-V3.0.0 智能合约开发之Hello World

    不管是C.C++.Java还是任何其他语言,一般刚开始学习的时候,我们都会从HelloWorld开始,这篇文章主要讲解EOS DAWN-V3.0.0 智能合约开发之Hello World. 在看这篇文 ...

  6. Android4.0源码目录结构详解

    Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...

  7. Alian解读SpringBoot 2.6.0 源码(二):启动流程分析之监听器解析

    目录 一.背景 1.1.run方法整体流程 1.2.本文解读范围 二.记录应用启动的开始时间 三.初始化启动上下文 3.1.初始化启动上下文 3.2.初始化应用程序事件广播器 3.3.初始化应用上下文 ...

  8. 《MapReduce 2.0源码分析与编程实战》一第1章 HBase介绍

    本节书摘来异步社区<MapReduce 2.0源码分析与编程实战>一书中的第1章,作者: 王晓华 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

  9. vue-cli 3.0 源码分析

    写在前面 其实最开始不是特意来研究 vue-cli 的源码,只是想了解下 node 的命令,如果想要了解 node 命令的话,那么绕不开 tj 写的 commander.js.在学习 commande ...

最新文章

  1. Linux 单用户模式修改密码与救援模式修改密码总结
  2. s1考试 图书管理系统 结构体版
  3. LeetCode: 102. Binary Tree Level Order Traversal
  4. 自动化测试框架搭建-报告-4
  5. “Hello World!”团队第二次会议
  6. List的remove(对象)操作有时候会报ConcurrentModificationException异常
  7. php的验证码要gd库,怎么在PHP中使用GD库实现一个验证码功能
  8. 2018 ACM-ICPC World Finals - Beijing
  9. linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...
  10. pytorch 创建神经网络
  11. 正整数和小数的正则写成自定义插件
  12. 计算机出现黑屏问题方法派出,电脑重装系统开机常见黑屏问题的解决方法
  13. 剑指offer——35复杂链表的复制
  14. 【毕业设计】基于PHP的网上书店的设计(论文)
  15. 【Codeforces 1426 D】Non-zero Segments,贪心,前缀和,数组子段统计
  16. python文件读写到list_Python文件读写
  17. Matpower疑惑解答
  18. 四大行、三大运营商在列,或有15家公司参与央行数字货币
  19. 三国志战略版360区S4服务器合并信息,三国志战略版S3合区表 新赛季哪些服务器合区...
  20. Tableau常用可视化图形介绍及其适用场景

热门文章

  1. 从零开始学_JavaScript_系列(六)——CSS的padding、margin、border属性超详细解释(图文)
  2. [Minecraft][Mod开发]如何做一个告示牌点赞mod
  3. HTML5+CSS3海绵宝宝网站设计(2)
  4. 品商业模式[摘自xiewen网络业游戏规则]
  5. 观2007年中常用软件大盘点 一文后的个人软件盘点
  6. void *指针是什么含义
  7. 什么是长尾词,长尾关键词的SEO秘密有哪些?
  8. 在每天一个故事中......
  9. Python+Appium+夜神模拟器 全流程从环境搭建到实现自动化(APP自动化)
  10. 计算机论文的摘要和关键词是什么意思,论文中的摘要和关键词是什么