A bit of Oyo hacking

Zu Weih­nach­ten wurde ein schon lange ge­heg­ter Wunsch er­füllt: Ein E-Book-Re­a­der. Ich hatte mich für einen Oyo ent­schie­den - zwar sind die ak­tu­el­len Sony-Ge­rä­te dem Oyo deut­lich über­le­gen (schnel­le­res und kon­trast­rei­che­res Dis­play, schnel­le­re Re­ak­ti­on, län­ge­re Ak­ku-Le­bens­dau­er, aus­ge­reif­te­re Be­die­nung), aber da ich an­neh­me, daß die Ent­wick­lung der E-Book-Re­a­der in den nächs­ten Jah­ren noch rasch vor­an­schrei­ten wird, war ich nicht ge­willt, den fast dop­pel­ten Be­trag zu in­ves­tie­ren. Ich habe das "Be­grü­ßungs­ge­schenk" - einen Roman aus einer ge­wis­sen Aus­wahl - in­zwi­schen durch­ge­le­sen und bin sehr an­ge­tan. Für Prosa eig­net sich der Oyo prima. Die Eig­nung für Fach­bü­cher (ich habe in­zwi­schen et­li­che O'Reil­ly-E-Books ge­kauft) wird er die kom­men­den Wo­chen unter Be­weis stel­len müs­sen.

Aber die Katze läßt ja be­kann­ter­ma­ßen das Mau­sen nicht, und so kam ich nicht umhin, ein wenig de­tail­lier­ter mit der Tech­nik zu spie­len :-)

Hier also ge­sam­mel­te In­for­ma­tio­nen über die Hard­ware, das Soft­ware-Up­date und den Ado­be-ADEPT-Ko­pier­schutz.

Dia­gno­se­tool star­ten

Der Klas­si­ker: Was pas­siert denn, wenn man ver­schie­de­ne Tas­ten­kom­bi­na­tio­nen beim Start drückt? Bei mir (Firm­ware-Ver­si­on 1.0 R2818) ge­langt man durch Hal­ten der Ein­schalt- und Zu­rück­tas­te (die bei­den obers­ten Tas­ten) in ein Dia­gno­se­tool, mit dem man sich di­ver­se Sys­temin­for­ma­tio­nen an­se­hen und die Funk­ti­on der Hard­ware (Touch­screen, Knöp­fe) über­prü­fen kann.

Ker­nel­sour­cen und Firm­ware­up­date-Pa­ket

In den Li­zenz­in­for­ma­tio­nen der An­lei­tung fin­det man fol­gen­den Link:
http://​www.​thalia.​de/​oyo_​src/​SG060B00_​V009.​tgz
Hier fin­det man an­ge­pa­ß­te Quel­len eines Li­nux­ker­nels sowie den U-Boot Boot­loa­der. Ein wenig "Auf­pas­sen" im haus­ei­ge­nen WLAN of­fen­bart auch die URL, über die das Firm­ware­up­date her­un­ter­ge­la­den wird:
http://​server.​meinoyo.​com/​update/​thalia/​oyofw.​tar.​bz2

Letz­te­res ent­hält ein Boot­image sowie ein kom­plet­tes Li­nux-File­sys­tem mit ARM-Bi­na­ries (im Li­zenz­an­hang der An­lei­tung wird der "Samsung S3C2443 SPI Con­trol­ler" er­wähnt; das ganze ist also eine AR­M9-Platt­form). In /etc/issue fin­det man noch die Will­kom­mens­mel­dung

Wel­co­me to the Samsung Glibc de­ve­lop­ment en­vi­ron­ment

Auch an­sons­ten ist das File­sys­tem alles an­de­re als aus­ge­dünnt - es gibt noch viele, für den Be­trieb nicht nö­ti­ge Bi­na­ries wie bei­spiels­wei­se einen Tel­net-Da­e­mon oder Tools wie dd. Naja, für wei­te­re Ex­pe­ri­men­te kön­nen die ja durch­aus hilf­reich sein ;-) Au­ßer­dem fin­det man di­ver­se Tools für den Flash-Zu­griff (flas­h_e­ra­se, nanddump, nandwri­te, etc.).

Die ei­gent­li­chen E-Book-Re­a­der-An­we­nun­gen sind mit QT Em­bed­ded ge­schrie­ben. All das läßt ver­mu­ten, daß die Soft­ware für den Oyo in gro­ßer Eile fer­tig­ge­stellt wurde - das läßt in so­fern hof­fen, daß die Ge­schwin­dig­keit des Oyos durch ge­eig­ne­te Pro­gram­mie­rung und ent­spre­chen­des Tu­ning doch noch ein gutes Stück ge­stei­gert wer­den kann.

In /li­nuxrc (ein Shell­skript) fin­det man fol­gen­den Ab­schnitt:

mount /dev/mmcblk1p1 /mnt/mmc1p1
if [ -f /mnt/mmc1p1/us­bde­bug ]; then
   echo "us­bde­bug"
   /usr/local/sbin/usbdebug.​sh
fi

Falls also eine Datei mit Namen us­bde­bug auf der SD-Kar­te exis­tiert, wird das Skript usbdebug.​sh aus­ge­führt - und dies schickt die sys­log-Aus­ga­ben und ein Ter­mi­nal auf die USB-Schnitt­stel­le.

Ter­mi­nal­zu­gang

Beim An­schluß an mei­nen Rech­ner mel­det mein Linux im Sys­log:

Pro­duct: Gad­get Se­ri­al
Ma­nu­fac­tu­rer: Linux 2.​6.​21.​5-cfs-v19 with s3c-udc

Um einen Shell­zu­gang zu be­kom­men, muß man die er­wähn­te Datei auf der SD-Kar­te an­le­gen, den Oyo über USB an den PC an­schlie­ßen und neu star­ten. Damit die se­ri­el­le Ver­bin­dung über USB zu­stan­de­kommt, muß vor­her das ent­spre­chen­de Ker­nel­mo­dul ge­la­den wer­den; dabei ist es nötig, Her­stel­ler- und Ge­rä­te-ID dem Modul als Pa­ra­me­ter mit­zu­ge­ben:

mod­pro­be usbse­ri­al ven­dor=0x0525 pro­duct=0x­a4a6

Nun kann man sich mit einem Ter­mi­nal­pro­gramm ver­bin­den (der Name des De­vices wird im Ker­nel­log an­ge­zeigt, ty­pi­scher­wei­se lau­tet er /dev/ttyUS­B0). Ich habe Mi­ni­com ver­wen­det, mit den Ver­bin­dungs­pa­ra­me­tern 115200 8n1 klapp­te es auf den zwei­ten Versu ch.

Das Hash des Root-Pass­worts stand im File­sys­tem-Ar­chiv des Firm­ware-Up­dates; der liebe John ver­riet mir nach ein paar Stun­den, daß der Klar­text SRe­a­der lau­tet. Glück ge­habt :-)

Back­ups

Im Hand­buch liest man gleich auf einer der ers­ten Sei­ten:

Ma­chen Sie nach jeder Ak­tua­li­sie­rung Ihrer Daten Si­che­rungs­ko­pi­en auf ex­ter­ne Spei­cher­me­di­en. Die Gel­tend­ma­chung von Scha­dens­er­satz­an­sprü­chen für Da­ten­ver­lust und da­durch ent­san­de­ne Fol­ge­schä­den wird aus­ge­schlos­sen.

Ich sehe zwei Mög­lich­kei­ten, um ein aut­ar­kes Back­up sei­ner ge­kauf­ten EBooks zu er­stel­len:

Si­chern der Ge­rä­te-ID

Die EPub-Da­tei­en, die man bei Tha­lia kau­fen kann, sind mit Adobe Adept so­wohl an eine Ge­rä­te­ken­nung als auch eine Be­nut­zer-ID ge­ket­tet. Schlie­ßt man den Oyo an einen PC, so er­hält man Zu­griff auf seine (ko­pier­ge­schütz­ten) E-Books und an seine (be­nut­zer­spe­zi­fi­schen) Ak­ti­vie­rungs­da­ten, nicht aber die Ge­rä­te-ID. Letz­te­re wird (dem Zeits­tem­pel nach zu ur­tei­len) beim ers­ten Ein­schal­ten des Oyos ge­ne­riert.

Das be­deu­tet: Geht der Oyo ka­putt (vom Las­ter über­fah­ren, vom Hund ge­fres­sen, etc.), so nützt die Da­ten­si­che­rung al­lei­ne nichts; mit der Ado­be-Soft­ware kann man (so­fern man seine Ado­be-ID ab­ge­schrie­ben hat, sie ent­spricht näm­lich nicht dem Tha­lia-Log­in) zwar seine E-Books noch­mals "ak­ti­vie­ren", aber eine von sechs mög­li­chen Ak­ti­vie­run­gen ist un­wie­der­bring­lich ver­lo­ren.

Ich ver­mu­te (ich habe die Na­gel­pro­be man­gels zwei­tem Oyo nicht ge­macht), daß fol­gen­des Kom­man­do die Ge­rä­te-ID auf die SD-Kar­te si­chert:

cp -a /rw­da­ta/.adept /mnt/mmc1p1/adept-de­vice­key

Das soll­te man si­cher­heits­hal­ber zu­sam­men mit sei­nem rest­li­chen Oyo-Back­up auf­be­wah­ren.

Ent­si­chern der EPubs

Iro­ni­scher­wei­se ge­nügt aber be­reits die Datei activation.​xml aus dem Ver­zeich­nis .ado­be-di­gi­tal-edi­ti­ons, wel­ches beim An­schluß des Oyos an den PC les­bar ist, um die ge­si­cher­ten EPubs zu ent­schlüs­seln :-) Bei "I love cab­ba­ges" fin­det man zwei Py­thon-Skrip­te: Eines, wel­ches unter Win­dows und Mac OS den per­sön­li­chen Schlüs­sel ex­tra­hiert, sowie ein zwei­tes, wel­ches damit dann die ei­ge­nen EPub-Da­tei­en ent­sperrt.

Aus Skript 1 ließ sich der Ma­cOS-Part her­aus­rei­ßen, um ihn an­schlie­ßend auf die activation.​xml-Da­tei des Oyos an­zu­set­zen. Letz­te­res habe ich pro­be­hal­ber hier ge­macht: ineptkey-oyo.​py_.gz.
In dem Skript steckt kei­ner­lei Magie (und auch keine Kryp­to) - es ex­tra­hiert aus einer (ohne ir­gend­wel­che Kniffs les­ba­ren) XML-Da­tei einen ein­zel­nen Kno­ten, wan­delt die Ba­se64-Dar­stel­lung zu­rück in die Bi­när­dar­stel­lung und spei­chert diese Daten in eine zwei­te Datei. Das Ent­schlüs­seln ge­schieht hier­in nicht.

Wei­te­re In­for­ma­tio­nen

In­zwi­schen habe ich ent­deckt, daß meine Er­kennt­nis­se keine bahn­bre­chen­den Neue­run­gen sind - an­de­re haben hier eben­falls schon Geh­ver­su­che un­ter­nom­men. Daher hier ei­ni­ge Ver­wei­se zu an­de­ren Sei­ten, die si­cher noch wei­te­re In­for­ma­tio­nen und Er­fah­run­gen be­inhal­ten:

Da die Firm­ware schein­bar keine Si­gna­tur be­nö­tigt, be­steht die Chan­ce, daß es Com­mu­ni­ty-Ent­wick­lun­gen geben wird, falls Tha­lia (und wer sonst noch hin­ter dem Oyo steckt) nicht in die Pötte kom­men.