android5.0源码开发之NVRam存储,恢复出厂设置数据不被擦除--上篇
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存储,恢复出厂设置数据不被擦除--上篇相关推荐
- [网络资源]ERP5.0源码开发文档合集.rar 28.84M
ERP5.0源码开发文档合集.rar 2010-11-27 08:39 291206 262438 ERP5.0总裁查询模块.pdf 2010-11-27 01:14 ...
- Android5.0源码分析—— Zygote进程分析
1 Zygote简介 Android的应用程序一般都是由Java语言编写而成的,这样的应用程序需要运行在独自的Dalvik虚拟机之上(当然,5.0好像默认了ART了).但是,如果在每一个进程 ...
- Android6.0源码分析—— Zygote进程分析(补充)
原文地址: http://blog.csdn.net/a34140974/article/details/50915307 此博文为<Android5.0源码分析-- Zygote进程分析> ...
- Android 8.0学习(32)---Android 8.0源码目录结构详解
Android 8.0源码目录结构详解 android的移植按如下流程: (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来. (2)正确挂载文件系统 ...
- 第三篇 - EOS DAWN-V3.0.0 智能合约开发之Hello World
不管是C.C++.Java还是任何其他语言,一般刚开始学习的时候,我们都会从HelloWorld开始,这篇文章主要讲解EOS DAWN-V3.0.0 智能合约开发之Hello World. 在看这篇文 ...
- Android4.0源码目录结构详解
Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...
- Alian解读SpringBoot 2.6.0 源码(二):启动流程分析之监听器解析
目录 一.背景 1.1.run方法整体流程 1.2.本文解读范围 二.记录应用启动的开始时间 三.初始化启动上下文 3.1.初始化启动上下文 3.2.初始化应用程序事件广播器 3.3.初始化应用上下文 ...
- 《MapReduce 2.0源码分析与编程实战》一第1章 HBase介绍
本节书摘来异步社区<MapReduce 2.0源码分析与编程实战>一书中的第1章,作者: 王晓华 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...
- vue-cli 3.0 源码分析
写在前面 其实最开始不是特意来研究 vue-cli 的源码,只是想了解下 node 的命令,如果想要了解 node 命令的话,那么绕不开 tj 写的 commander.js.在学习 commande ...
最新文章
- Linux 单用户模式修改密码与救援模式修改密码总结
- s1考试 图书管理系统 结构体版
- LeetCode: 102. Binary Tree Level Order Traversal
- 自动化测试框架搭建-报告-4
- “Hello World!”团队第二次会议
- List的remove(对象)操作有时候会报ConcurrentModificationException异常
- php的验证码要gd库,怎么在PHP中使用GD库实现一个验证码功能
- 2018 ACM-ICPC World Finals - Beijing
- linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...
- pytorch 创建神经网络
- 正整数和小数的正则写成自定义插件
- 计算机出现黑屏问题方法派出,电脑重装系统开机常见黑屏问题的解决方法
- 剑指offer——35复杂链表的复制
- 【毕业设计】基于PHP的网上书店的设计(论文)
- 【Codeforces	1426	D】Non-zero Segments,贪心,前缀和,数组子段统计
- python文件读写到list_Python文件读写
- Matpower疑惑解答
- 四大行、三大运营商在列,或有15家公司参与央行数字货币
- 三国志战略版360区S4服务器合并信息,三国志战略版S3合区表 新赛季哪些服务器合区...
- Tableau常用可视化图形介绍及其适用场景
热门文章
- 从零开始学_JavaScript_系列(六)——CSS的padding、margin、border属性超详细解释(图文)
- [Minecraft][Mod开发]如何做一个告示牌点赞mod
- HTML5+CSS3海绵宝宝网站设计(2)
- 品商业模式[摘自xiewen网络业游戏规则]
- 观2007年中常用软件大盘点 一文后的个人软件盘点
- void *指针是什么含义
- 什么是长尾词,长尾关键词的SEO秘密有哪些?
- 在每天一个故事中......
- Python+Appium+夜神模拟器 全流程从环境搭建到实现自动化(APP自动化)
- 计算机论文的摘要和关键词是什么意思,论文中的摘要和关键词是什么