Как запросить данные из резервной копии файлов SQLite и Plist для iPhone
Некоторые пользователи могут напрямую манипулировать необработанными файлами, хранящимися в их резервных копиях, в экспертном режиме. Они часто состоят из базы данных SQLite ( .sqlite3
, .sqllitedb
и .db
) или файлов Plist (обычно .plist
).
iPhone Backup Extractor включает встроенный редактор Plist, и его пользователи могут автоматически экспортировать свои данные в форматы PDF, HTML, VCard, ICAL, VCF или CSV для легкого доступа. Однако пользователям, желающим извлечь данные из этих файлов, потребуется клиент базы данных SQLite.
Как я могу работать с базами данных SQLite?
Пользователи могут захотеть попробовать любое из этих трех приложений:
- SQLiteFlow (платный, macOS и iOS). SQLiteFlow - наш инструмент для MacOS SQLite.
- База 2 (платная, macOS). Base - это один из наших любимых инструментов SQLite для macOS. Он доступен как для прямой загрузки, так и для приложения из App Store .
- Браузер БД для SQLite (бесплатно, macOS и Windows). Обозреватель БД раньше назывался Обозреватель баз данных SQLite. Это наш рекомендуемый инструмент для Windows, и он бесплатный. Они также предоставляют версию для MacOS.
Как я могу работать с файлами базы данных Apple напрямую?
Например, чтобы вручную получить доступ к контактным данным, пользователи должны извлечь Libray/AddressBook/AddressBook.sqllitedb
, а затем открыть извлеченный файл с помощью средства просмотра SQLite. Выбрав вкладку «Выполнение SQL», вставьте ее в поле «Строка SQL»:
SELECT ABPerson.first, ABPerson.last, ABMultiValue.value FROM ABPerson, ABMultiValue WHERE ABMultiValue.record_id = ABPerson.ROWID
Нажатие кнопки « Execute Query
должно вернуть полный список контактов, показанный в поле «Данные возвращены».
Чтобы получить доступ к данным SMS, пользователи должны извлечь Libray/SMS/SMS.db
, открыть извлеченный файл с помощью средства просмотра SQLite, выбрать вкладку « Browse data
», а затем выбрать message
в раскрывающемся Libray/SMS/SMS.db
« Table
. При нажатии кнопки с увеличительным стеклом пользователи должны увидеть свою полную историю SMS, отображаемую в поле «Данные возвращены».
Один из наших пользователей счел этот запрос полезным, поэтому мы включили его здесь для наших пользователей. Имейте в виду, что форматы баз данных меняются в разных версиях iOS, поэтому эти запросы часто нужно менять со временем.
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
Мы поддерживаем список ключевых файлов для различных приложений здесь.
Поля даты и времени просто возвращаются как числа, как я могу их интерпретировать?
Вы можете изо всех сил пытаться интерпретировать много полей в базах данных. Не забывайте, iPhone Backup Extractor может извлечь данные автоматически для вас! Однако, если вы идете в одиночку, вы должны 1970-01-01
, что даты представлены в виде количества секунд с 2001-01-01
или 1970-01-01
зависимости от положения поля даты. В Excel вы можете использовать формулу, такую как =1/1/2001 + A1/60/60/24
где A1
- ваши данные времени. Вам также может потребоваться изменить значение для учета вашего местного часового пояса.
от Andrew
You can use this to format the messages (SMS) date field: