Erica Sadun podała sposób na wyciągnięcie z backupów starych notek:
- Zachowaj poniższy skrypt jako dbextract.pl w katalogu, który jest w zmiennej $PATH
#!/usr/bin/perl -w
use strict;
# This file clumsily extracts the DB’s hidden in the iPhone backup files
# Usage: perl -w dbpextract.pl /Users/flip/Library/Application\ Support/MobileSync/Backup/*/*
my %seen;
foreach my $filename (@ARGV) {
# Slurp File Contents
open(FILE, „<$filename") or die "Can't open $filename: $!"; my $data = do {local $/; binmode FILE;};
close(FILE);
# skip non-SQLite Files
($data =~ m|SQLite|) or next;
# identify the file and use it to name the output
my $type = ($data =~ m!([^/]*?)\.(sqlitedb|db)!) ? $1 : 'unknown’;
$seen{$type}++;
my $outfilename = sprintf „%s_%02d.db”, $type, $seen{$type};
# Helpful progress report
printf STDERR „%-60s to %-25s\n”, $filename, $type, $outfilename;
# dump the part between „SQLite format 3” and end
# FIXME — is there cruft at end? I don’t know the SQLite format. Maybe you do?
open(OUTFILE, „>$outfilename”) or die „Can’t open $outfilename: $!”;
binmode OUTFILE;
my $sqlitedb = $data;
$sqlitedb =~ s/^(.*?SQLite format 3)/SQLite format 3/;
print OUTFILE $sqlitedb;
close(OUTFILE);
} - Przejdź do ~/Library/Application Support/MobileSync/Backup,
- Wylistuj zawartość chronologicznie: ls -lt,
- Przejdź do najnowszego folderu i uruchom dbextract.pl z plikiem mdbackup jako parametrem, np.: dbextract.pl *.mdbackup,
- Zbadaj otrzymane pliki. Jeśli trzeba otwórz je w sqlite3 i zdumpuj ich zawartość. Jeśli masz to czego szukałeś to fajnie, jeśli nie to przejdź do następnego chronologicznie folderu i powtórz od kroku nr 4,
- Gdy znajdziesz odpowiedni plik notes.db, przescpuj go do iPhone’a/iPoda do folderu /var/[name]/Library/Notes.
Zamiast [name] użyj:
root – jeśli firmware twojego iPoda jest niższy od 1.1.4,
mobile – w innym przypadku.