MTK平台NV基本功能与操作 
一、NVRAM基本概念 
NV就是Non Volatile缩写,就是非易失性存储性,通俗来说,就是即使系统掉电后,存储在该存储器的数据也不会丢失。 
为什么要备份恢复,NV值是需要通过校准和终测才能使手机硬件达到最佳工作状态,特别是其中的RF相关的NV项,经过校准及终测后,每台手机的这些NV值基本上都不一样,又加上NV数据是是存储在镜像文件,而镜像文件数据很可能遭到破坏(如:重新烧写版本),这时的NV数据也将被破坏,之前校准和终测后的NV数据也将无法恢复,使得手机将面临重新走校准、终测的生产流程。 
 
图1-NVRAM框架图 
Non-Volatile Repository Access Manager(MTK): 
保存手机配置,比如IMEI, 射频校准数据,音量,来电铃声,界面语言,定时器,视频设置等等。应用程序能够安全保存数据到内存(NAND/NOR Flash,EMMC),系统崩溃时,能够保护日常配置数据,备份文件和默认配置不丢失。 
AP BIN region: 
智能手机AP侧备份一个NVRAM数据版本,包含了Modem NVRAM数据,譬如重要的RF校准数据等。(CALIBRAT, NVD_IMEI)

  
二、NVRAM数据结构 
MTK平台采用LID(Logical Data Item)和LID Table哈希表的数据结构来管理NV Item列表。 
 

描述了一个数据项,操作NV最小单位 
Attributes 
限制读写方式 
Category 
限制储存方式(物理分类) 
LID table 
限制存储方式(逻辑分类)

 
  
三、NVRAM添加步骤

NV添加LID基本步骤 
1. 新增LID枚举型变量 
2. 定义Record 大小和个数 
3. 定义LID版本号(VERNO) 
4. 声明默认值Default 
5. 声明LID入口 
 

四、NVRAM可调可测 
NVRAM对外可编程接口如下,对特定NV进行读写操作

kal_bool nvram_external_read_data(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint8 *buffer, kal_uint32 buffer_size);
kal_bool nvram_external_write_data(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint8 *buffer, kal_uint32 buffer_size);
kal_bool nvram_external_reset_data(nvram_lid_enum LID, kal_uint16 rec_index, kal_uint16 rec_amount);
  • 1
  • 2
  • 3

下面一个写NV操作

----------//lid readif( !nvram_external_read_data(ldi->LID, 1, (kal_uint8 *)cmp_buffer, ldi->size) ){nvram_ut_trace("[NVUT] nvram_security_test(): first read test LID fail!\n\r");return KAL_FALSE;}if( KAL_TRUE == nvram_external_write_data(ldi->LID, 1, (kal_uint8 *)cmp_buffer, ldi->size) ){nvram_ut_trace("[NVUT] nvram_security_test(): write fail not happen!\n\r");return KAL_FALSE;}else{nvram_ut_trace("[NVUT] nvram_security_test(): can't write when locked!\n\r");}//lid resetnvram_reset_data_items(NVRAM_RESET_CERTAIN, NVRAM_APP_RESERVED, ldi, 1, ldi->total_records);nvram_get_default_value_to_write(ldi, 1, (kal_uint8 *)data_buffer, ldi->size); //get new default valueif( !nvram_external_read_data(ldi->LID, 1, (kal_uint8 *)cmp_buffer, ldi->size) ){nvram_ut_trace("[NVUT] nvram_security_test(): third read test LID fail!\n\r");return KAL_FALSE;}
  • PC META工具可以读写备份NV相关文件

Android守护进程位置

vendor\mediatek\libs\nvram_daemon
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)
LOCAL_MODULE = nvram_daemon
LOCAL_MODULE_CLASS = EXECUTABLES
LOCAL_MODULE_OWNER = mtk
LOCAL_PROPRIETARY_MODULE = true
LOCAL_MODULE_TAGS = optional
LOCAL_SHARED_LIBRARIES = libnvram libcustom_nvram libfile_op libnvram_daemon_callback libhwm libc++
LOCAL_MULTILIB = 32
LOCAL_SRC_FILES_32 = arm/nvram_daemon
include $(BUILD_PREBUILT)
\vendor\mediatek\proprietary\external\nvram
\vendor\mediatek\proprietary\external\nvram\libcustom_nvram
\vendor\mediatek\proprietary\external\nvram\libnvram
\vendor\mediatek\proprietary\external\nvram\libnvram_daemon_callback
\vendor\mediatek\proprietary\external\nvram\nvramagentclient

相机相关NV位置

\vendor\mediatek\proprietary\hardware\mtkcam\feature\mfnr\modules\nvram

MTK MODEM(1)--- MTK平台NV基本功能与操作相关推荐

  1. MTK平台NV的功能与操作

    目录 前言 NVRAM基本概念 NVRAM数据结构 ​​NVRAM添加步骤 NVRAM调测 前言 手机软件分2部分, AP部分和BP部分, AP部分就是基于Linux的这一套, BP部分就是modem ...

  2. [FAQ09717]如何去掉mtk自行开发的OOBE快速向导 功能中的某段操作引导视频的播放?

    MTK[FAQ09717]如何去掉自行开发的OOBE快速向导功能中的某段操作引导视频的播放? [DESCRIPTION] 如何去掉mtk自行开发的OOBE快速向导功能中的某段操作引导视频的播放? [S ...

  3. 深度解析大数据可视化管理平台的监控功能

    在上一篇的文章中已经明确说过DKM作为大快发行版DKhadoop的管理平台,它的四大功能分别是:管理功能,监控功能,诊断功能和集成功能.管理功能已经给大家列举了一些做了说明,今天就DKM平台的监控功能 ...

  4. 从0到1搭建移动App功能自动化测试平台(2):操作iOS应用的控件

    转载:http://debugtalk.com/post/build-app-automated-test-platform-from-0-to-1-Appium-interrogate-iOS-UI ...

  5. Xna环境在PC平台下的功能扩展

    如大家所知,DirectX与Xna之间有着千丝万缕的联系,而后者更侧重于跨平台,于是便在前者的基础上砍掉了部分PC的专属功能,新增了一些各平台通用的功能. 如果仅仅是使用Xna写PC平台下的游戏,而不 ...

  6. 大数据分析平台有哪些功能

    大数据分析平台作为大数据应用最前沿的技术,一直受到人们的期待和关注.大数据分析平台能承载从数据提取到数据价值变现过程中所有功能.而在这个过程中,有三个方面值得关注和重点发展. 数据清洗功能 在大数据应 ...

  7. 云计算具有什么平台_工业云平台具有哪些功能?

    工业云平台已经被越来越多的人关注,它的吞吐量.计算速度.安全性都能够满足商用需求,那么,具体来说,工业云平台有哪些功能呢?下面天拓四方专业人员来给大家详细讲解下. 1.有效解决制造业的系统和设备问题 ...

  8. 国内无代码平台数据统计功能对比

    数据统计是为了可以分析你的店铺,上个月与本月的对比,去年与今年的对比,从数据可以看出昨天的生意怎么样,做活动有没有效果,效果怎么样,这些都是用数据说话的.根据数据分析并做出调整是一个企业必不可少的环节 ...

  9. 电信物联网卡查询平台具备什么功能

    中国电信在构建物联网生态圈的时候,着重针对了金融.家居.信息和通讯技术等部分,在意识到物联卡能够进一步扩大影响力后,电信物联网卡的营业额直线上升,现已成为各大集团所钟情的商用卡片.但有部分客户反映不知 ...

最新文章

  1. 视频专辑:张孝祥Java邮件开发
  2. pr防抖插件_FCPX/AE/Pr视频稳定防抖动插件Lock and Load X v2.0版
  3. 如何知道当前像素的顶点坐标_GT 大神 | 如何高效渲染流体效果(绝对干货)
  4. 散粒噪声是白噪声吗_5种常见的内部噪声,你都清楚吗?
  5. 项目中AppDelegate详解
  6. 繁星屠龙软件下载_历时72小时,测试5个软件,写出的数理化教学软件推荐……(下)...
  7. STM32系统时钟默认设置
  8. 漫画算法python版下载_用 Python 下载漫画
  9. 单片机TM4C123学习(一):GPIO模块的应用
  10. WPF:window设置单一开启
  11. python中pickle模块无法导入_python pickle模块
  12. 管理学定律七:责任分散效应与帕金森定律
  13. 「excel小技巧」一秒快速求和多行数值
  14. logo设计软件哪个好用?小白也能学会的logo设计小技巧
  15. No matter how well thought out it is
  16. python 录音vad_python---webRTC~vad静音检测-学习笔记
  17. [转]Windows Server 2012 和 System Center 2012 SP1,Virtual Machine Manager 中启用的软件定义的网络...
  18. HP DL580 G8 做RAID
  19. 分享几个小众又高薪的职业
  20. PBR来龙去脉篇一:光和人眼感知颜色

热门文章

  1. mysql二级缓存redis_redis实现二级缓存
  2. ORACLE EXPLAIN PLAN的总结 (优化SQL语句)
  3. @Param注解在dao层的使用
  4. mysql处理重复数据
  5. python的特殊方法介绍
  6. Android ListView使用
  7. 17.3.10--C语言运行的步骤
  8. DMA(2) S3C2410 DMA详解(其它的其实类似)
  9. Maven pom.xml中的元素modules、parent、properties以及import
  10. [python]网络编程基础学习笔记(一)客户/服务器网络介绍