SQLite文件签名问题解决指南

2次阅读
没有评论

问题描述

在使用CWM进行Android自定义ROM(Neatrom)的工厂重置和恢复时,发现应用程序安装成功但应用数据丢失。需要通过Yodot Data Recovery for Android恢复“My Phone Explorer Notes”和“My Phone Explorer Tasks”的“notes.db”和/或“notes.db-journal”文件,但这些非标准文件类型未能在软件中被识别。问题核心在于确定这两种文件的签名信息:1)十六进制格式的文件签名;2)文件大小(字节);3)文件偏移量;4)文件描述。

解决方案

了解.db和.db-journal文件格式

根据SQLite官网文档,.db文件是主要数据库,其头部开始于字符串“SQLite format 3\000”。需要注意“\000”表示零字节或ASCII NUL字符。而“db-journal”文件若存在且被打开时发生工厂重置,则为数据库的日志文件。它以十六进制序列 d9 d5 05 f9 20 a1 63 d7开始。

记录数据

  • SQLite格式.db文件
  • 文件签名:SQLite format 3\000
  • 文件偏移量:文件头部起始,通常为 0x0
  • 文件描述:主要数据库

  • Db-journal日志文件(如果存在)

  • 文件签名:d9 d5 05 f9 20 a1 63 d7
  • 文件偏移量:根据实际情况确定,通常为 0x408
  • 文件描述:数据库操作记录

结合这些信息在Yodot Data Recovery软件中输入上述内容,并设置文件偏移量和大小(如db大小约为100 KB到3 MB之间),尝试进行文件恢复。

搜索文件

  • 确保在搜索时使用正确格式的十六进制字符串,可以确保数据库文件被准确识别。
  • 在“文件类型”字段中输入SQLite format 3\000d9 d5 05 f9 20 a1 63 d7等值,并设定适当的搜索范围。

示例操作步骤

  1. 进入恢复工具,创建一个新项目。
  2. 在“文件类型”部分创建新的文件格式:
  3. 名称:SQLite
  4. 文件签名(十六进制):SQLite format 3\000
  5. 日志文件签名(十六进制):d9 d5 05 f9 20 a1 63 d7
  6. 根据文件大小和偏移量设置搜索范围。
  7. 开始搜索并定位丢失或被误删除的“notes.db”和“notes.db-journal”文件。

通过以上步骤,用户应能成功识别并恢复所需的核心数据文件。

正文完