MTK MODEM(1)--- MTK平台NV基本功能与操作
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基本功能与操作相关推荐
- MTK平台NV的功能与操作
目录 前言 NVRAM基本概念 NVRAM数据结构 NVRAM添加步骤 NVRAM调测 前言 手机软件分2部分, AP部分和BP部分, AP部分就是基于Linux的这一套, BP部分就是modem ...
- [FAQ09717]如何去掉mtk自行开发的OOBE快速向导 功能中的某段操作引导视频的播放?
MTK[FAQ09717]如何去掉自行开发的OOBE快速向导功能中的某段操作引导视频的播放? [DESCRIPTION] 如何去掉mtk自行开发的OOBE快速向导功能中的某段操作引导视频的播放? [S ...
- 深度解析大数据可视化管理平台的监控功能
在上一篇的文章中已经明确说过DKM作为大快发行版DKhadoop的管理平台,它的四大功能分别是:管理功能,监控功能,诊断功能和集成功能.管理功能已经给大家列举了一些做了说明,今天就DKM平台的监控功能 ...
- 从0到1搭建移动App功能自动化测试平台(2):操作iOS应用的控件
转载:http://debugtalk.com/post/build-app-automated-test-platform-from-0-to-1-Appium-interrogate-iOS-UI ...
- Xna环境在PC平台下的功能扩展
如大家所知,DirectX与Xna之间有着千丝万缕的联系,而后者更侧重于跨平台,于是便在前者的基础上砍掉了部分PC的专属功能,新增了一些各平台通用的功能. 如果仅仅是使用Xna写PC平台下的游戏,而不 ...
- 大数据分析平台有哪些功能
大数据分析平台作为大数据应用最前沿的技术,一直受到人们的期待和关注.大数据分析平台能承载从数据提取到数据价值变现过程中所有功能.而在这个过程中,有三个方面值得关注和重点发展. 数据清洗功能 在大数据应 ...
- 云计算具有什么平台_工业云平台具有哪些功能?
工业云平台已经被越来越多的人关注,它的吞吐量.计算速度.安全性都能够满足商用需求,那么,具体来说,工业云平台有哪些功能呢?下面天拓四方专业人员来给大家详细讲解下. 1.有效解决制造业的系统和设备问题 ...
- 国内无代码平台数据统计功能对比
数据统计是为了可以分析你的店铺,上个月与本月的对比,去年与今年的对比,从数据可以看出昨天的生意怎么样,做活动有没有效果,效果怎么样,这些都是用数据说话的.根据数据分析并做出调整是一个企业必不可少的环节 ...
- 电信物联网卡查询平台具备什么功能
中国电信在构建物联网生态圈的时候,着重针对了金融.家居.信息和通讯技术等部分,在意识到物联卡能够进一步扩大影响力后,电信物联网卡的营业额直线上升,现已成为各大集团所钟情的商用卡片.但有部分客户反映不知 ...
最新文章
- 视频专辑:张孝祥Java邮件开发
- pr防抖插件_FCPX/AE/Pr视频稳定防抖动插件Lock and Load X v2.0版
- 如何知道当前像素的顶点坐标_GT 大神 | 如何高效渲染流体效果(绝对干货)
- 散粒噪声是白噪声吗_5种常见的内部噪声,你都清楚吗?
- 项目中AppDelegate详解
- 繁星屠龙软件下载_历时72小时,测试5个软件,写出的数理化教学软件推荐……(下)...
- STM32系统时钟默认设置
- 漫画算法python版下载_用 Python 下载漫画
- 单片机TM4C123学习(一):GPIO模块的应用
- WPF:window设置单一开启
- python中pickle模块无法导入_python pickle模块
- 管理学定律七:责任分散效应与帕金森定律
- 「excel小技巧」一秒快速求和多行数值
- logo设计软件哪个好用?小白也能学会的logo设计小技巧
- No matter how well thought out it is
- python 录音vad_python---webRTC~vad静音检测-学习笔记
- [转]Windows Server 2012 和 System Center 2012 SP1,Virtual Machine Manager 中启用的软件定义的网络...
- HP DL580 G8 做RAID
- 分享几个小众又高薪的职业
- PBR来龙去脉篇一:光和人眼感知颜色
热门文章
- mysql二级缓存redis_redis实现二级缓存
- ORACLE EXPLAIN PLAN的总结 (优化SQL语句)
- @Param注解在dao层的使用
- mysql处理重复数据
- python的特殊方法介绍
- Android ListView使用
- 17.3.10--C语言运行的步骤
- DMA(2) S3C2410 DMA详解(其它的其实类似)
- Maven pom.xml中的元素modules、parent、properties以及import
- [python]网络编程基础学习笔记(一)客户/服务器网络介绍