Notes na iPodzie i iPhonie

Posted on Wed 27 August 2008 in iPhone/iPod • [1 min read]

Erica Sadun podała sposób na wyciągnięcie z backupów starych notek:

  1. 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);
    }
    
  2. Przejdź do ~/Library/Application Support/MobileSync/Backup,

  3. Wylistuj zawartość chronologicznie: ls -lt,

  4. Przejdź do najnowszego folderu i uruchom dbextract.pl z plikiem mdbackup jako parametrem, np.: dbextract.pl *.mdbackup,

  5. 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,

  6. 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.*