Vytvořte si vlastní hack Sony Readeru

Princip dosazení vlastních fontů do čtečky zůstal po celá léta, co se tato úprava dělá, stejná – je třeba vzít originální firmware, rozbalit ho na disk, nahradit v něm některé soubory, zase firmware zabalit a flashnout ho do čtečky. Zatím jsem se věnoval tomu poslednímu kroku, flashnutí upraveného firmware (na PRS-505, PRS-600 a PRS-300), ale neřešil jsem otázku, kde se ten upravený firmware vezme. Nyní bude toto tajemství odhaleno. Není však pro lidi se slabými nervy – podstatnou část úprav je třeba dělat z příkazového řádku. Na druhou stranu, když už postup jednou zvládnete, dá se použít i pro tvorbu vlastních hacků, takže jestli máte ambice udělat něco jako PRS Plus, je to možné…

Postup, který v dalších řádcích popíšu, je poměrně univerzální: funguje v zásadě stejně v Linuxu (odkud ostatně pocházejí základní použité nástroje) jako ve Windows, a je použitelný pro (skoro) všechny dosud existující čtečky od Sony. Jedinou výjimkou je PRS-900, která sice v principu používá stejné postupy, ale v praktické implementaci je háček – image firmwaru je určitým způsobem „nabořen“ a Porkupan/Boroda (autor všech smysluplných hackovacích postupů) tvrdí, že je pro jeho úpravy nutné použít nějaký Linux, na Windows že to nejde. Možná že to nějak jde obejít, ale ve věku free virtualizačních nástrojů mi to přijde jako celkem riskantní to zkoušet.

Když už píšu o riziku – jak je na tom můj návod? Tak na půl. Pokud přijmeme za prokázané, že flashování funguje spolehlivě, tak na zbytku operace už se nic pokazit nemůže. Tedy – nemůže se to pokazit samo od sebe: nestane se, že by čtečka byla v nějakém neočekávaném stavu, který úpravu znemožní. Na druhou stranu, skoro v každém kroku může uživatel svou nepozorností udělat chybu, která se mu pak tvrdě vymstí – klidně i v podobě nefunkční čtečky. Každopádně bych doporučil se v průběhu úprav soustředit výhradně na ty úpravy a nedělat nic jiného (jedním okem sledovat počítač, druhým televizi a třetím dění na ulici…) – a pokud možno provádět první pokusy na PRS-505, který se dá snadno vrátit do původního stavu.

Postup

Jak už jsem napsal v úvodu, postup spočívá v následujících krocích:

  1. Získat zdrojový firmware.
  2. Rozbalit firmware na disk.
  3. Nahradit nebo upravit vybrané soubory.
  4. Znovu firmware zabalit.
  5. Flashnout upravený firmware do čtečky.

Postupně si ty kroky rozebereme.

Získání zdrojového firmware

Abyste mohli něco upravovat, potřebujete mít k dispozici něco, z čeho můžete vyjít – v tomto případě neupravený firmware. Kde a jak ho získáte, to je otázka. U PRS-505 můžete klidně vzít oficiální Soňácký updatovač firmwaru a rozbalit ho (je to obyčejný samorozbalovací ZIP). U ostatních modelů to tak snadné není, protože firmware je distribuovaný v zašifrovaném stavu. Nejjednodušší mi přijde vybrat si některý z existujících hacků (pro libovolnou čtečku) a ten rozbalit – můžete vyjít z mých EPUBových hacků, můžete použít některou poruštěnou verzi, můžete začít s PRS-Plus atd.

Ve všech případech bude firmware vypadat podobně – bude to zřejmě ten největší (nebo druhý největší) soubor v archívu a bude mít název jako cramfs.Fsk.img (oficiální updater pro PRS-505), Fsk.img (PRS-Plus), new_opt.300.img (Borodovy a moje hacky PRS-300) apod. Téměř s jistotou bude mít příponu .img, a pokud bude tvořen více soubory, zajímavý je ten, co má v názvu Fsk (můžete se podívat i na Root, kde je jádro Linuxu, který na Readerech běží, ale e-bookový software je ve Fsk).

Rozbalení firmware na disk

Firmware Sony je uložen jako obraz „diskového“ oddílu se souborovým systémem CramFS. Pro práci s ním existují příslušné utility, například CRAMFSCK pro rozbalení obrazu a MKCRAMFS pro jeho vytvoření. Pod Windows je jen nutné vypořádat se s drobným zádrhelem, že všechny Googlem indexované Windowsové verze CRAMFSCK jsou zastaralé a pokud vůbec něco udělají, tak z jejich výstupu nepůjde udělat funkční image. Přeskočte tedy Google a stáhněte si rovnou Borodovu aktuální verzi.

  1. Rozbalte CRAMFSCK do pracovního adresáře (např. C:\fsk).

  2. Nakopírujte do tohoto adresáře soubor s firmwarem (např. Fsk.img).

  3. Spusťte příkazový řádek.

  4. Přesuňte se do připraveného pracovního adresáře příkazem cd /d "C:\fsk" (kde pochopitelně použijete svůj název adresáře z kroku 1).

  5. Příkazem cramfsck -x fsk -d fsk.dt "Fsk.img" image rozbalíte do adresáře C:\fsk\fsk a vytvoříte i soubor C:\fsk\fsk.dt, který bude potřeba později pro vytvoření nového image.

Úprava a nahrazení souborů

Nyní můžete v adresáři C:\fsk\fsk provést požadované úpravy. V případě náhrady fontů vlastními to znamená, že v adresáři C:\fsk\fsk\sony\ebook\FONT nahradíte soubory tt0003m_.ttf (bezpatkové písmo – používá se v menu čtečky), tt0011m_.ttf (patkové písmo – používá se pro základní text) a tt0419m_.ttf (neproporciální písmo – nepoužívá se vůbec) svými verzemi. V případě fontů si dejte pozor, že je nestačí přejmenovat, ale je nutné upravit i jejich interní názvy – viz články PRS-505: Čeština, PRS-505: Čeština podruhé a SonyFont: Čeština jednoduše. Každopádně bych doporučil začít jenom s tt0419m_.ttf (neproporciální) – právě proto, že ho sama čtečka k ničemu nepoužívá, nestane se nic strašného, když jeho úpravu pokazíte (zatímco když pokazíte tt0003m_.ttf, dostane se čtečka do nekončeného cyklu restartů, ze kterého se na PRS-505 dá dostat snadno a na ostatních modelech pěkně blbě). Teprve až si na Zkoušce češtiny ověříte, že neproporciální font funguje, se pusťte do těch ostatních, užitečnějších.

Můžete si případně pohrát s ostatními soubory, zajímavé jsou zejména ty s příponou .xml. Programátory budou zajímat i soubory s příponou .xsb, které obsahují skripty čtečky (v zakódované podobě – dekódování zajistí prográmek DeFsk).

Je nanejvyš vhodné soubory jen upravovat, určitě je nemažte ani nepřidávejte nové, pokud nevíte, co děláte. Také se držte v rozletu co do rozsahu změn – výsledný image má omezenou velikost, jejíž překročení čtečka nenese dobře (=zakousne se nebo se donekonečna restartuje); přesná velikost není známa, dá se předpokládat, že to bude nějaké kulaté číslo (v binárním vyjádření, tj. u PRS-505 nejspíš 8 MB). Možná zvažte, jestli ten univerzální font obsahující všechno od latinky po čínské písmo skutečně potřebujete a nevystačili byste si jen s obyčejnou latinkou.

Vytvoření nového image

Postup je obdobný jako při rozbalování firmware, akorát pochopitelně opačný:

  1. V pracovním adresáři (C:\fsk) už byste měli mít rozbalený i prográmek MKCRAMFS. Pokud ne, tak ho tam rozbalte.

  2. Spusťte příkazový řádek.

  3. Přesuňte se do připraveného pracovního adresáře příkazem cd /d "C:\fsk" (kde pochopitelně použijete svůj název adresáře z kroku 1).

  4. Příkazem mkcramfs -D fsk.dt fsk "NovyFsk.img" vytvoříte z adresáře fsk image soubor NovyFsk.img. Ověřte si, že není o mnoho větší než původní Fsk.img a hlavně že velikost nového souboru nepřekračuje nejbližší (vůči starému souboru) vyšší kulaté číslo jako 8.388.608 (pořád počítáme binárně).

Flashnutí firmware

Flashování firmware už jsem věnoval spoustu pozornosti v předchozích článcích, tohle je jen rozvinutí téže myšlenky. Celý trik spočívá v tom, že původní image soubor nahradíte svým NovyFsk.img, který přejmenujete pod původní jméno. Pokud jste například vyšli z mého hacku PRS-300, tak původní new_opt.300.img smažete, na jeho místo nahrajete NovyFsk.img a přejmenujete ho na new_opt.300.img.

V případě novějších flasherů (v podstatě všechno kromě původního Universal Flasheru [resp. PRS Customizeru] pro PRS-505) ještě musíte opravit soubor s kontrolním součtem firmware – nové flashery si ověřují, že při přenosu dat do interní paměti čtečky nedošlo k chybě, a kdybyste kontrolní součet neopravili, k „chybě“ by došlo vždy. Kontrolní součet je uložen na stejném místě jako soubor firmwaru a má i stejný název, liší se jen příponou .md5. Potřebujete spočítat MD5 hash vašeho firmwaru (např. utilitou Hash My Files, ale můžete použít i jinou, jsou jich stovky) a přepsat jím starý hash v .md5 souboru – prostě smažete všechno až do první mezery a místo toho vložíte vypočítaný hash.

No a to je všechno, dál můžete postupovat podle instrukcí pro flashování hacku pro vaši čtečku, jak byly uvedeny v předchozích článcích. Jen bych znovu doporučoval, nacvičte si to napřed na modelu PRS-505, který se dá snadno vrátit do funkčního stavu v případě, že jste nedbali na moje dřívější varování a nedávali opravdu dobrý pozor, co děláte…

Kompatibilita

Rychlé shrnutí na závěr:

  • PRS-300 – ověřeno jako funkční.

  • PRS-500 – neověřeno, ale skoro s jistotou by to mělo fungovat.

  • PRS-505 – mnohonásobně ověřeno jako funkční, na vlastní čtečce.

  • PRS-600 – ověřeno jako funkční.

  • PRS-700 – neověřeno, mělo by to fungovat.

  • PRS-900 – prý to funguje pod Linuxem, pod Windows ne.

Podobné příspěvky:

8 komentářů “Vytvořte si vlastní hack Sony Readeru”

  1. avatar pepak napsal:

    V tom případě bych to zkusil pod Linuxem, tak, jak se to mělo dělat i u PRS-900.

    Poradit nemůžu, Linux znám jen z rychlíku.

  2. avatar Vláďa napsal:

    Jj jasný. Bohužel na tu 950 jsou ty firmwary trochu odlišné. Rozbalit všechno není problém, dokonce i odhalit v čem je chyba (Mikheil – PRSP) nepřidal kompletní české fonty. Bohužel problém je ve zpětné kompilaci. Vyhazuje mi to nějakou chybu. :-/ (něco ve stylu …libip6t_hl.so: regular file from device_table must exist on disk!

  3. avatar pepak napsal:

    Principy, popsané v tomto článku, by měly fungovat i pro PRS-950 (ale vyzkoušené to nemám, protože 950 nevlastním). Jen postupuj velmi opatrně a pečlivě a každou odchylku od očekávaného stavu důkladně prozkoumej – PRS-900 (předchůdce 950) měla nějaký ne zcela kompatibilní image, který se musel rozbalovat a zabalovat pod Linuxem, pod Windows to nešlo!

    Instalační archív PRSPlus se dá rozbalit 7-zipem, soubor s filesystémem je 4278d3939169b39d7add8ae67a5a2d7b.Rootfs.

  4. avatar Vláďa napsal:

    Ahoj. Koupil jsem si PRS-950 v USA a docela rád, bych do ní dostal alespoň podporu pro zobrazování českých fontů. Když si stáhnu a flashnu Borodovu verzi pro 950, tak je to fajn, ale např. soubory .txt, .doc atd. se mi zobrazují v ruštině. Flash PRSP se mi líbí mnohem víc, kvůli možnostem atd. ale tam prostě českou znakovou sadu nemohu dostat. Nevěděl bys prosím jak na to? Obzvlášť, když PRSP je samoinstalovací archiv a pokud ho rozbalím, tak pak nevím co dál….

  5. avatar pepak napsal:

    Nikdy neříkej nikdy, ale podle mě to je vyloučené, dokud nebude úplně nová technologie e-inku (v první řadě rychlá a zřejmě i barevná).

  6. avatar Vasek napsal:

    Ahoj, vim ze je to trochu mimo, ale existuje nejaka sance dostat do firmware nejaky software na mapovou navigaci ? Vzhledem k vydrzi by ctecka mohla byt vcelku fajn nahrada papirove mapy. Muzu samozrejme zobrazovat obrazky, scany map, ale kdyby to slo lepe ovladat a nebo jeste lepe pres usb pripojit GPS modul tak se nezlobim 🙂

  7. avatar pepak napsal:

    Postupy, které jsem uvedl ve článku Vytvořte si vlastní hack Sony Readeru , teoreticky fungují i pro PRS-700. Ovšem s tím, že sedmistovka je asi nejméně prozkoumaný a vyzkoušený model, a třeba já sám s ním nemám vůbec žádné zkušenosti.

    Druhá věc je, že kupovat dneska PRS-700 je vyslovený nesmysl. Když už něco s podobnými charakteristikami, tak o něco novější PRS-600, ale radši rovnou 650 nebo 950 (pokud potřebuješ větší displej) kvůli lepšímu kontrastu. Nebo se můžeš podívat u jiných výrobců. Ale sedmistovka má z dnešního pohledu jen samé nevýhody.

  8. avatar Jana napsal:

    Zdravím, uvažuji o koupi Sony PRS 700, ale nemá českou diakritiku. Myslíš, že do ní jde nahrát fonty, které se nahrávají do 505? Nebude v tom někde zákeřný problém, který běžný uživatel nezvládá, abych nerozhodila něco, co nemám… Díky za odpověď – přiznám se, že na ni celkem spěchám. J.

Leave a Reply

Themocracy iconWordPress Themes

css.php