ZTE_UZ901_NVRAM经验总结

ZTE UZ901 热点 NVRAM 经验总结

2026/7/1

事故经过

  1. 删除了 /mnt/userdata/etc_rw/psnv/rw_backup(160KB,NVRAM 持久化运行数据)
  2. 删除了 /mnt/userdata/etc_rw/nv/backup/ 目录(内含 cfg + ro 校准状态文件)
  3. 当时系统正常运行,未发现问题
  4. 重启后 SIM 卡无法识别("modem_sim_undetected")

根因

NVRAM 双缓冲机制

文件 路径 大小 作用
rw_work .../psnv/ 160KB 运行时 NVRAM(modem 当前正在写的)
rw_backup .../psnv/ 160KB 持久备份(用于开机恢复)
work_flag .../psnv/ 1B 工作区标记
backup_flag .../psnv/ 1B 备份区标记
cfg .../nv/main/ 17KB 主要校准配置
cfg .../nv/backup/ 17KB 备份校准配置
ro .../nv/main/ 144B 只读配置
ro .../nv/backup/ 144B 只读配置备份

zte_ufi 守护进程管理这套机制。开机流程:

  1. 读取 psnv/rw_backup → 恢复 modem 状态(卡槽、射频、频段等)
  2. 运行时写入 psnv/rw_work
  3. 周期性同步 rw_workrw_backup(双缓冲,带 flag 标记一致性)
  4. nv/main/cfg 存增量校准,nv/backup/cfg 是对影

为什么删除后当时没事

删除的是 flash 上的文件。modem 和 zte_ufi 已经把数据加载到了内存中继续运行。系统重建的空文件不会影响运行中的进程。但重启后,modem 初始化拿到的是一套默认空状态,卡槽/射频参数全错,SIM 检测失败。

为什么系统自己重建不能用

系统重建的文件 MD5 与备份完全不同(a86e7a92 vs a19c65fd),说明重建的内容是出厂初始化写入的默认值,不是运行时积累的有效数据。只有来自运行状态的备份才能正确恢复 modem。

恢复方法

  1. 重启前做了完整 MTD 备份(userdata.bin = mtd5)
  2. jefferson 解压 JFFS2 镜像
  3. adb push 覆盖以下文件:
    • psnv/rw_backup
    • psnv/rw_work
    • nv/backup/cfg
    • nv/main/cfg
  4. 重启后 modem 读取正确 NVRAM,SIM 恢复正常

教训

  • NVRAM 文件看起来一样其实不一样 ------rw_backuprw_work 即使 MD5 相同,也比空文件重要得多
  • 删除后当时没事 ≠ 安全,双缓冲数据依赖状态一致性
  • 做操作前备份整个 MTD 分区------这次救命的正是备份
  • jffs2 上 rm 是真正的删除,没有回收站。删除的文件如果被 GC 擦除就永久丢失
  • 留 236KB 空闲 userdata ≠ 可以随便删,关键文件删了重启就暴雷
  • psnv/rw_backup + nv/backup/禁区------生产环境绝不应该动
相关推荐
艾莉丝努力练剑24 分钟前
【AI大模型接入SDK】LLM会话管理模块设计
网络·c++·人工智能·学习·大模型
国科安芯37 分钟前
卫星电源管理系统中宽温域低功耗MCU的选型与适应性分析
嵌入式硬件·mcu·抗干扰·抗辐射·宽温
AlanBruce7 小时前
摩尔信使MThings功能综述与应用使用指南
linux·自动化·plc·mthings·摩尔信使
老当益壮梁奶奶9 小时前
51单片机DS18B20温度传感器详解:单总线时序与C51驱动实现
笔记·stm32·单片机·嵌入式硬件·51单片机
虹科网络安全9 小时前
Redis 安全公告:CVE-2026-81934 TLS 处理漏洞及修复建议
网络·人工智能·网络安全
Horn Still Sounds9 小时前
ARM嵌入式基础|内核、寄存器、架构、存储、汇编移位全面梳理
arm开发·单片机·嵌入式硬件·硬件架构
星栖与芯9 小时前
LiteOS-M 切换汇编逐行图解(2):指令·异常机制·全景表
stm32·单片机·嵌入式硬件·harmonyos·鸿蒙系统
小程序设计10 小时前
某师范学院网络规划与设计
网络·安全
可爱系程序猿11 小时前
WSD 打印机时好时坏:从发现服务、地址变化到 Standard TCP/IP 端口的迁移记录
网络·网络协议·tcp/ip·程序人生·电脑
从零开始的嵌入式之旅11 小时前
day44
arm开发·经验分享·笔记·嵌入式硬件