Hacking mobilu část druhá: Cyanogenmod na HTC ChaCha

Po úspěšném prvním zásahu do mobilu, kdy telefonující funkce přežily a nevzniklo z něj jen drahé těžítko, se již dostalo na další krok a to na instalaci nějaké jiné ROM. Těch existuje povícero; po rozmýšlení se mezi SuperOSR a CyanogenMod 7.2 padla nakonec volba na CyanogenMod. Tak hurá do toho.

CM 7.2 pro HTC ChaCha je k dostání na xda-developers foru. Samotné flashnutí ROM po předchozích krocích je poměrně snadné. Stačilo zip s ROM nahrát na kartu, k tomu i google apps, pustit telefon do bootloaderu, spustit recovery a postupně aplikovat soubory s ROM a google apps. Následně byl potřeba ještě wipe uživatelských dat a všech cachí (tedy včetně dalvik cache apod.) - vše lze nalézt v recovery, byť je to trochu schované. Bez toho se telefon chová poměrně divně - například mi odmítal fungovat market :)

No, telefon tedy naběhnul a tváří se poměrně funkčně. Postupem času se objevují některé neduhy; na některé je upozorněné přímo v threadu na foru, na některé ne. Na co jsem za pár týdnů narazil:

  • Při aktivním hovoru po zhasnutí displaye spadne telefonní aplikace a tedy i hovor. Jelikož světločidlo funguje spolehlivě, tak se to stane přesně ve chvíli, kdy člověk přiloží telefon k uchu. Problém je známý a řešitelný, stačí stáhnout knihovnu libhtc_ril a přesunout ji do /system/lib. Jelikož je telefon rootnutý, není potřeba dělat nějaké harakiri s adb shellem, jako to někde popisují; stačí rozbalenou knihovnu dát na kartu, pustit si terminál, příkazem su se přepnout na roota a následně přes mv /sdcard/libhtc_ril.so /system/lib knihovnu přesunout.
  • Často bývá reportován problém s GPS a ani mně se to nevyhnulo. Občas se to hůře zjišťuje, jelikož zjišťování polohy přes BTS (které má jinak přesnost dost na houby) funguje, takže například v mapě to kolikrát ukáže polohu docela přesně. Názorně je to vidět například v aplikaci GPS Status, kde jednak v pravém dolním rohu je vidět stav satelitů (tam jak jsou naznačeny ty čárky, pokud se nic nechytá) a jednak poloha se zobrazí až ve chvíli, kdy GPS skutečně funguje. Jediné skutečně možné řešení, jak to na alternativních ROM rozchodit, je flash rádia. K tomu však již je zapotřebí S-Off přes XTC Clip, takže investice se v tuhle chvíli vyplácí. Radio verze 47.23.35.3033H_7.51.39.19 se ukázalo s CM 7.2 bez problémů funkční (po updatu GPS bez problémů naběhla) a samotný update je též jednoduchý - stačí podle instrukcí soubor vhodně pojmenovat, nahrát na kartu a spustit bootloader. Pro úplnost dodávám - je to velice vhodné dělat s plně nabitou baterií.
  • CM má vestavěný WiFi tethering, ale s tímhle telefonem si moc nerozumí. Má pocit, že to neumí a tak ani nenabízí nastavení. Jako workaround jsem zvolil instalaci aplikace Wireless Tether for Root Users od Müller, Lemons, Buxton se kterou WiFi tethering funguje bez problému. Bluetooth tethering jsem nezkoušel, ale měl by snad také fungovat.
  • CM má také jako nabídku do power widgetů zapnutí LED foťáku jako svítilnu. Bohužel také nefunguje. Nicméně aplikace jako svítilna apod. fungují dále, takže je to stejné jako u originální ROM.
  • ADW launcher se zdá o něco pomalejší. I přes mojí konfigurační snahu se snaží stále animovat a dělat průhledné šaškárny, což mu na tomhle telefonu moc nejde. Ale je to použitelné a samotné aplikace běží stejně rychle jako předtím.
  • Dále nefunguje několik minoritních věcí jako facebook tlačítko nebo přední kamera. Jelikož jsem oboje použil jednou po zakoupení telefonu, abych zjistil, jestli to vůbec funguje, tak mě to nijak netrápí.

Jelikož předchozí text vyznívá poměrně negativně a nastává otázka jaký vlastně mělo smysl tohle telefonu páchat, přihodím i pár věcí, které na telefonu začaly fungovat či se zlepšily:

  • Telefon není přeplácaný integrovanýma kokotinama od výrobce. Ačkoliv na tomhle modelu výrobce ušetřil 10 doláčů za paměť a ponechal tam tristních 512MB, ze kterých většina zabere systém, nebránilo mu to v tom, aby do telefonu nacpal věci jako klienta pro každou existující i neexistující sociální síť, cool aplikace jako zrcadlo (asi kdyby si telefon náhodou koupila Sněhurka či co) a hromadu widgetů, které umí cokoliv od uvaření kafe po ovládání jaderné ponorky. Po této úpravě jsou v telefonu věci, které jsou potřeba a základní google aplikace. Co člověk chce, si doinstaluje a nemusí se koukat na přeplácané menu aplikacema, které ani nejdou odinstalovat.
  • Jako další krok nápravy nedostatku paměti bylo použití link2sd. Ten narozdíl od integrovaného přesouvání aplikací na kartu přesouvá i data a cache a aplikace tak v paměti zabírá výrazně méně místa, než při obyčejném přesunutí na kartu. Pro tuto operaci jsem navíc na vložené microSD kartě udělal dva oddíly. První je naformátovaný na FAT32 a tváří se jako normální karta v normálním telefonu. Druhý je formátovaný jako ext4 a přifařený k link2sd aplikaci. Link2sd pak pomocí symlinků aplikace přesouvá na tento druhý oddíl (a ext4 v této ROM funguje bez problémů). Funguje to poměrně spolehlivě a dobře; automatické přesouvání instalovaných aplikací na kartu jde také naprosto automaticky. Drobný zádrhel je s USB Mass Storage. Ten po připojení kabelu a aktivaci nabídne počítači oba dva oddíly na kartě. Nicméně od telefonu se odpojí jen ten první; tedy pokud jsou aplikace na druhém oddílu, nedojde k jejich vypnutí či nefunkčnosti. Navíc druhý oddíl zůstává stále namountován i pro zápis. Potíž nastává ve chvíli, kdy tento druhý oddíl namountuje i počítač - ext4 není zrovna dělané na to, aby bylo připojené z více míst naráz. Pokud tedy hrozí, že počítač druhý oddíl automaticky připojí, je lepší si na to dát pozor (není to případ Windows, které do dneška nechápou, že by SD karta mohla mít více než jeden oddíl a na Linuxu je tohle řešitelné automaticky). Kartu jsem rozdělil a formátoval v počítači; přijde mi to jako daleko snažší řešení, než se s tím plácat v recovery v telefonu.
  • Původní ROM pro nastavení profilu k WPA2-Enterprise síti vyžadovala aktivní "úložiště pověření" se zadaným heslem. To by bylo ještě celkem v pořádku, větší sranda byla, že po restartu telefonu nedošlo po jeho spuštění a zapnutí WiFi k aktivaci úložiště. Bylo potřeba ručně vlézt do nastavení sítě, dát připojit, zadat heslo k úložišti a pak to začalo fungovat. Obvykle než si toho člověk všiml, tak FUP za mobilní data byl v tahu. V CM, díkybohu, tahle bezpečnostní vychytávka není.
  • Ačkoliv upravený HTC Sense z originální ROM měl být uzpůsobený pro takto malý display, CyanogenMod s ADW Launcherem se mi zdá výrazně vhodnější. Sense měl ikonky jak pro slepce a velikost horní lišty se snažil srovnat s ostatníma telefonama tím, že jí uměle kreslil o několik pixelů větší - to mělo navíc za následek to, že většina ikon aplikací v ní byla pěkně rozpitá. ADW Launcher se o tohle nesnaží a je to všechny hezky malé a tak i na tom prťavém displayi je o něco více místa (při 320x240 je každý pixel dobrý).
  • V CyanogenModu je v nabídce připojeních k VPN možnost přidat i OpenVPN spojení a OpenVPN je defaultní součástí. Pokud ji člověk používá, je to celkem fajn - bez nějakých obštrukcí se jen vypíšou údaje k připojení a OpenVPN klient hezky funguje (a navíc je to tak pěkně integrované :) ).

Celkově vzato po pár týdnech používání si nemohu na nic stěžovat. Pokud se člověk nevyžívá na koukání na sebe přes druhou kameru, funguje po zmíněných úpravách vše jak předtím nebo lépe. Na žádnou komplikaci jsem nenarazil; spotřeba baterie vypadá minimálně stejně, jako když byl telefon nový (a s každým dalším oficiálním updatem se výrazně zhoršovala). Teď jen doufat, že to v tomhle stavu bez nějaké újmy po dlouhou dobu vydrží :)