iPhone 백업 SQLite 및 Plist 파일에서 데이터를 쿼리하는 방법
일부 사용자는 전문가 모드를 사용하여 백업에 저장된 원시 파일을 직접 조작하고자 할 수 있습니다. 이들은 종종 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는 macOS 용으로 가장 선호되는 SQLite 도구 중 하나이며 직접 다운로드 및 App Store 앱으로 제공 됩니다.
- SQLite 용 DB 브라우저 (무료, macOS 및 Windows). DB 브라우저는 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
탭을 선택한 다음 Table
드롭 다운에서 message
를 선택해야 message
. 돋보기 버튼을 클릭하면 "반환 된 데이터"필드에 전체 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
우리는 여기 에 다양한 애플 리케이션에 대한 핵심 파일 의 목록을 유지합니다.
날짜와 시간 필드가 숫자로 돌아 왔을 때 어떻게 해석 할 수 있습니까?
데이터베이스의 여러 필드를 해석하는 데 어려움을 겪을 수 있습니다. 아이폰 백업 추출기가 자동으로 데이터를 추출 할 수 있다는 것을 잊지 마십시오! 그러나 혼자가는 경우 날짜 필드의 위치에 따라 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: