Cómo consultar datos de archivos de copia de seguridad de SQLite y Plist de iPhone

Actualizado
Cover image for: Cómo consultar datos de archivos de copia de seguridad de SQLite y Plist de iPhone

Es posible que algunos usuarios deseen manipular directamente los archivos sin procesar almacenados en sus copias de seguridad utilizando el modo experto. Estos a menudo están compuestos por .sqlite3 de base de datos SQLite ( .sqlite3 , .sqllitedb y .db ) o Plist (generalmente .plist ).

iPhone Backup Extractor incluye un editor Plist incorporado, y sus usuarios pueden exportar automáticamente sus datos a formatos PDF, HTML, VCard, ICAL, VCF o CSV para un fácil acceso. Sin embargo, los usuarios que deseen extraer datos de estos archivos necesitarán un cliente de base de datos SQLite.

¿Cómo puedo trabajar con bases de datos SQLite?

Los usuarios pueden querer probar cualquiera de estas tres aplicaciones:

  • SQLiteFlow (pago, macOS e iOS). SQLiteFlow es nuestra herramienta de macite SQLite de elección.
  • Base 2 (pago, macOS). Base es una de nuestras segundas herramientas SQLite favoritas para macOS, y está disponible como descarga directa y aplicación App Store .
  • DB Browser para SQLite (gratis, macOS y Windows). DB Browser solía llamarse SQLite Database Browser. Es nuestra herramienta recomendada para Windows, y es gratis. También proporcionan una versión para macOS.

¿Cómo puedo trabajar directamente con los archivos de la base de datos de Apple?

Como ejemplo, para acceder manualmente a los datos de contacto, los usuarios deben extraer Libray/AddressBook/AddressBook.sqllitedb y luego abrir el archivo extraído con un visor de SQLite. Al elegir la pestaña "Ejecutar SQL", pégala en el campo "Cadena SQL":

SELECT ABPerson.first, ABPerson.last, ABMultiValue.value
FROM ABPerson, ABMultiValue
WHERE ABMultiValue.record_id = ABPerson.ROWID

Al presionar el botón Execute Query debería devolver la lista de contactos completa que se muestra en el campo "Datos devueltos".

Para acceder a los datos de SMS, los usuarios deben extraer Libray/SMS/SMS.db , abrir el archivo extraído con el visor de SQLite, elegir la pestaña Browse data y luego seleccionar el message del menú desplegable Table . Al hacer clic en el botón de la lupa, los usuarios deberían ver su historial de SMS completo en el campo "Datos devueltos".

Uno de nuestros usuarios encontró útil la siguiente consulta, por lo que la incluimos aquí para nuestros usuarios. Tenga en cuenta que los formatos de base de datos cambian entre las versiones de iOS, por lo que estas consultas a menudo deben cambiar con el tiempo.

SELECT ROWID,
  ABPerson.first,
  ABPerson.last,
  ABPerson.Organization AS organization,
  ABPerson.Department AS department,
  DATETIME(ABPerson.Birthday + STRFTIME('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') AS Birthday,
  ABPerson.JobTitle as jobtitle,
  ABPerson.Organization,
  ABPerson.Department,
  ABPerson.Note,
  ABPerson.Nickname,
  DATETIME(ABPerson.CreationDate + STRFTIME('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') AS Created,
  DATETIME(ABPerson.ModificationDate + STRFTIME('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') AS Modified,
  ( SELECT value FROM ABMultiValue
    WHERE property = 3 AND record_id = ABPerson.ROWID AND label = (
      SELECT ROWID FROM ABMultiValueLabel
      WHERE value = '_$!<Work>!$_'
    )
  ) AS phone_work,
  ( SELECT value FROM ABMultiValue
    WHERE property = 3 AND record_id = ABPerson.ROWID AND label = (
      SELECT ROWID FROM ABMultiValueLabel
      WHERE value = '_$!<Mobile>!$_'
    )
  ) AS phone_mobile,
  ( SELECT value FROM ABMultiValue
    WHERE property = 3 AND record_id = ABPerson.ROWID AND label = (
      SELECT ROWID FROM ABMultiValueLabel
      WHERE value = '_$!<Home>!$_'
    )
  ) AS phone_home,
  ( SELECT value FROM ABMultiValue
    WHERE property = 4 AND record_id = ABPerson.ROWID AND label IS null
  ) AS email,
  ( SELECT value FROM ABMultiValueEntry
    WHERE parent_id IN (
      SELECT ROWID FROM ABMultiValue WHERE record_id = ABPerson.ROWID
    ) AND key = (
      SELECT ROWID FROM ABMultiValueEntryKey WHERE lower(value) = 'street'
    )
  ) AS address,
  ( SELECT value FROM ABMultiValueEntry
    WHERE parent_id IN (
      SELECT ROWID FROM ABMultiValue WHERE record_id = ABPerson.ROWID
    ) AND key = (
      SELECT ROWID FROM ABMultiValueEntryKey WHERE lower(value) = 'city'
    )
  ) AS city
FROM ABPerson
ORDER BY ABPerson.first

Mantenemos una lista de archivos clave para varias aplicaciones aquí.

Los campos de fecha y hora simplemente vuelven como números, ¿cómo puedo interpretarlos?

Puede ser difícil interpretar una serie de campos en las bases de datos. No lo olvides, iPhone Backup Extractor puede extraer los datos automáticamente por ti. Sin embargo, si lo hace solo, debe encontrar que las fechas se representan como el número de segundos desde 2001-01-01 o 1970-01-01 , dependiendo de la posición del campo de fecha. En Excel, puede usar una fórmula como =1/1/2001 + A1/60/60/24 donde A1 es su información de tiempo. Es posible que también deba ajustar el valor para tener en cuenta su zona horaria local.

¿Cómo podemos ayudar?

¡Nuestro equipo de soporte está aquí para ayudar!

Nuestro horario de atención es de lunes a viernes de 9 a.m. a 5 p.m. GMT. El tiempo es actualmente 9:30 AM GMT.

Intentamos responder todos los mensajes en un plazo de un día laboral.

Nuestro increíble equipo de soporte.

Comentarios (1)

You can use this to format the messages (SMS) date field:

datetime(date/1000000000 + 978307200,'unixepoch','localtime') as date

¿Podemos mejorar este artículo?

Nos encanta escuchar de los usuarios: ¿por qué no enviarnos un correo electrónico, dejar un comentario o tuitear? @reincubate?

© 2008 - 2024 Reincubate Ltd. Todos los derechos reservados. Registrado en Inglaterra y Gales #5189175, VAT GB151788978. Reincubate® y Camo® son marcas registradas. Política de privacidad & condiciones.