A múltkor lefagyás után nagyrészt sikerült visszaállítani az elveszett jegyzeteimet. Rögtön az újraindítás után kivettem a memóriakártyát, hogy ne rontsam tovább a helyzetet. Ezután a korábbi adatmentős írásomban ismertetett módon lementettem az egész kártya tartalmát későbbi elemzésre.
Az mentett képfájlt a phororec-nek adtam oda, elég sok fájl hozott vissza. Az eredeti fájlnév nem maradt meg, úgy kellett összevadászni az ömlesztett fájlokból a database/cache/cacheExt.xml és a Digital Editions gyökérkönyvtárban lévő, annot kiterjesztésű, egyébként szintén XML fájlokra hasonlító fájlokat. Az XML-ek gyökértag-jére érdemes keresni („<cacheExt” és „<annotationSet”). A két fájl közül a cacheExt.xml fájlba kerülnek olvasható módon a jegyzetek, de ez valószínűleg – ahogy a neve is mutatja – csak egy cache, a tényleges jegyzeteket az annot fájl tárolja.
A photorec a fájlok legutolsó változatán kívül elég sok régebbi változatot is kibányászott a memóriakártya eldugott szektoraiból. Ezek közül a legnagyobbakat választottam ki. A fájlok mérete arányos a benne lévő jegyzetek számával.
Rossz hír, hogy ezt a két fájlt szinkronban kell visszaállítani. Ez nekem nem akart összejönni. Az .annot fájl törlése után a cacheExt-ből is törlődtek az annotációk, viszont az annot fájl visszaállítása után nem generálódik újra a cache, hanem az annot fájl tartalma is törlődik. (Elég érdekes viselkedés egy cache-hez képest.) A kettő egy időben történő visszaállításakor pedig némelyik jegyzet nem volt kijelölve a szövegben, csak a jegyzetlistán jelent meg a hozzá tartozó bejegyzés.
Az annot fájlból és a könyvből kiindulva valószínűleg le lehetne generálni a cacheExt tartalmát is, ha máshogy nem is, a firmware forráskódja alapján biztosan, de ennyit nem ért meg a dolog. Ehelyett inkább kinyomtattam a legnagyobb cacheExt fájl releváns részeit és kézzel felvettem újra a jegyzeteket.
A cacheExt-ben ezek a részek az érdekesek:
<annotation date="Tue, 16 Nov 2010 22:10:42 GMT" name="..." page="1" pageOffset="1" pages="948" part="0" scale="2" synced="true" dpi="167" width="584" height="754" layoutVersion="1"> <start>...</start> <end>...</end> <comment></comment> </annotation>
A name attribútum tárolja a kijelölt szöveget, a page az oldalszámot (0 jelöli az első oldalt), a scale a kijelöléskori nagyítást (0 = S, 1 = M, 2 = L), a pageOffset pedig az adott fizikai oldalon belüli oldalt (nagyítás esetén van jelentősége).
A rajzokat külön SVG fájlok tárolják, az XML-ből csak hivatkozás van rájuk. A hivatkozás csak fájlnévvel történik, ami eléggé kellemetlen, mivel a photorec nem állítja vissza az eredeti fájlnevet.
A cacheExt-beli tag hasonló az előzőhöz:
<freehand date="Sun, 28 Nov 2010 18:16:31 GMT" name="..." page="785" pageOffset="0" pages="948" part="0" scale="0" synced="true" dpi="167" width="584" height="754" layoutVersion="1"> <svgFile width="584" height="754">1290968182066.77.svg</svgFile> <thumbFile width="115" height="149">1290968182066.77.jpg</thumbFile> <mark>...</mark> <comment></comment> </freehand>
A jpg fájl tartalmazza a rajz mögötti könyvoldal képét is, ami alapján találgatással össze lehet párosítani a photorec által megtalált képeket az XML freehand bejegyzéseivel. A könyvből ki kell keresni a page attribútumokban szereplő oldalakat, majd az ezekhez hasonlító képet. Ezek a képek nagyon kicsik (kb. 100 x 150 képpont), rossz minőségűek, de nekem sokat segítettek, mert esetemben az ábrák többnyire csak egy pipából álltak a már olvasott fejezetek elején, és ezek az oldalak változatosabb képet mutattak, mint a folytonos szöveg a fejezetek további oldalain. Érdemes figyelni (nem sorkizárt szöveg esetén) a sorok végére rajzolható görbét, a fejezetcím hosszát, ha eltérő, akkor a páros-páratlan oldalak közti fejléc, illetve lábléc különbségét, ábrák alakját.
A cacheExt fájlból a következő részlet az érdekes:
<text path="...pdf" preventDelete="true" opened="true"> <currentPosition date="Fri, 07 Jan 2011 13:32:25 GMT" name="undefined" page="552" pageOffset="0" pages="948" part="0" scale="0" synced="false" dpi="167" width="584" height="754" layoutVersion="1"> <mark>I3BkZmxvYyg5OWYwLDU1MikA</mark> <comment></comment> </currentPosition> ...
Itt is a korábban már ismertetett page, scale és a pageOffset attribútumokra kell figyelni.
Legutóbbi hozzászólások
9 év 16 hét
10 év 5 hét
10 év 9 hét
10 év 27 hét
11 év 29 hét
11 év 35 hét
11 év 35 hét
11 év 36 hét
11 év 46 hét
12 év 16 hét