일부 사용자는 전문가 모드를 사용하여 백업에 저장된 원시 파일을 직접 다루고 싶을 수 있습니다. 이러한 파일은 흔히 SQLite 데이터베이스(.sqlite3, .sqllitedb, .db) 또는 Plist(보통 .plist) 파일로 구성되어 있습니다.
iPhone Backup Extractor에는 Plist 편집기가 내장되어 있으며, 사용자는 데이터를 PDF, HTML, VCard, ICAL, VCF, CSV 형식으로 자동으로 내보내 쉽게 사용할 수 있습니다. 하지만 이러한 파일에서 데이터를 추출하려면 SQLite 데이터베이스 클라이언트가 필요합니다.
SQLite 데이터베이스는 어떻게 다루나요?
다음 세 가지 애플리케이션 중 하나를 사용해 볼 수 있습니다.
- SQLiteFlow(유료, macOS 및 iOS). SQLiteFlow는 macOS에서 가장 선호하는 SQLite 도구입니다.
- Base 2(유료, macOS). Base는 macOS에서 두 번째로 선호하는 SQLite 도구 중 하나이며, 직접 다운로드 또는 App Store 앱으로 제공됩니다.
- DB Browser for SQLite(무료, macOS 및 Windows). DB Browser는 예전에 SQLite Database Browser라는 이름이었습니다. Windows에서 권장하는 도구이며 무료입니다. macOS용 버전도 제공됩니다.
이 정보를 신뢰할 수 있나요?
Reincubate는 이러한 제품과 제휴 관계가 없으며 언급하는 대가로 보상을 받지 않습니다.
Apple의 데이터베이스 파일은 어떻게 직접 다루나요?
예를 들어 연락처 데이터에 직접 접근하려면 Libray/AddressBook/AddressBook.sqllitedb을 추출한 다음 추출된 파일을 SQLite 뷰어로 엽니다. “Execute SQL” 탭을 선택하고 “SQL string” 필드에 다음을 붙여넣습니다.
SELECT ABPerson.first, ABPerson.last, ABMultiValue.value
FROM ABPerson, ABMultiValue
WHERE ABMultiValue.record_id = ABPerson.ROWID
Execute Query 버튼을 누르면 “Data returned” 필드에 전체 연락처 목록이 표시됩니다.
SMS 데이터에 접근하려면 Libray/SMS/SMS.db을 추출하고 추출된 파일을 SQLite 뷰어로 연 다음 Browse data 탭을 선택하고 Table 드롭다운에서 message을 선택합니다. 돋보기 버튼을 클릭하면 “Data returned” 필드에 전체 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는 데이터를 자동으로 추출해 줍니다. 하지만 직접 처리한다면 날짜 필드의 위치에 따라 날짜가 2001-01-01 또는 1970-01-01 이후의 초 수로 표시된다는 것을 알 수 있습니다. Excel에서는 =1/1/2001 + A1/60/60/24 같은 수식을 사용할 수 있으며, 여기서 A1은 시간 데이터입니다. 현지 시간대를 반영하여 값을 조정해야 할 수도 있습니다.
