neděle, 21. září 2008

Patří hardware mě nebo výrobci? Člověk versus Symbian - 1:0

Tak dlouho jsem se v duchu smál iPhonistům že si kupují mobil u kterého ne oni, ale výrobce rozhoduje o tom co si tam smí nainstalovat, až došlo i na mě :). Ne že bych si koupil zmíněnou Appleovskou hračku na chlubení, ale dostal jsem ve firmě nový mobil náhradou za věrného Siemense CX-65. A tím mobilem je Nokia E51.

Zpočátku jsem jen zkoumal co dovede, užíval si radosti multitaskingu a aplikací běžících na pozadí, hrál si s foťákem a nastavoval zvonění. No prostě asi jako každý s novým telefonem.

O nějakou chvíli později mě už zarazilo, že při instalaci jedné aplikace musím (podle kolegovy rady) posunout systémový čas o 1/2 roku dozadu, protože jinak mobil hlásí "chyba certifikátu" a odmítne program nainstalovat. Ale pořád jsem byl ještě naivní a nezkušený, a říkal jsem si "no co, dobře že ty certifikáty kontroluje".

Pak jsem hledal jestli se dá nějak zakázat chování, že při stisku červeného tlačítka mobil okamžitě a bez ptaní ukončí zrovna běžící Javovskou aplikaci, a narazil jsem na článek o NoRedClose. Ale program nešel nainstalovat. A postup "jak certifikovat vlastní aplikaci pro vlastní mobil" nefungoval, protože Nokiácký web symbiansigned.com zjevně už nějakou dobu vůbec neumožňuje podpis certifikátů nikomu jinému než vývojářům kteří si za to zaplatí.

Blbé je, že většina článků na netu, které se tomuto problému věnují, je zaměřená na "širokou veřejnost". V každém z nich se tedy člověk dočte kde stáhnout program DevCertRequest, které checkboxy tam má zaškrtnout, co kam vyplnit, kam potom na webu kliknout, ale už se nedozví nic o principu, k čemu to všechno vlastně je.

Ve skutečnosti je to děsně jednoduché:
  • Symbian povolí jen instalaci certifikátem podepsaných aplikací.
  • Certifikát musí být vystavený jedinou konkrétní nokiáckou certifikační autoritou, která má v úložišti certifikátů nastavený příznak "smí podepisovat aplikace". Tohle je natvrdo zadrátované v ROM, takže varianta "přidám si svou vlastní CA mezi kořenové, a nechám si certifikát podepsat od ní" není průchozí :(
  • Je teoreticky možné požádat si na symbiansigned.com o "vývojářský" certifikát pro vlastní mobil (identifikovaný pomocí IMEI), který pak v rozšíření s oid=1.2.826.0.1.1796587.1.1.1.1 obsahuje právě IMEI telefonu. Ve skutečnosti ale tahle varianta už asi 1/2 roku nefunguje. Pokud by fungovala, tak bych si zmíněným certifikátem mohl vesele podepisovat kteroukoli aplikaci, a můj mobil by pak povolil její instalaci.
  • Tohle platí pro Symbianovské aplikace (.sis/.sisx). Čert ví jak to s podepisováním funguje pro Javovské midlety.
Co z toho plyne? Kdo si koupil mobil v dobré víře že si na něj nainstaluje kteroukoli ze starších Smybianovských aplikací, má smůlu. Kdo si do něj chce nainstalovat třeba Operu Mini a nechce aby se ho mobil pokaždé ptal jestli se smí připojit k internetu, má taky smůlu. A ten kdo si chce číst knížky pomocí ReadManiacu a opět nechce aby se ho mobil při každém vstupu do adresáře ptal jestli aplikace "smí číst uživatelská data" musí taky zatnout zuby a smířit se s tím že on patří mezi pouhý plebs, a jen Nokia smí rozhodovat o tom co se smí a co nesmí.

Ještě že hackeři mezitím zjistili jak tahle omezení kompletně obejít. Kouzelná slovíčka zní "HelloCarbide", "RomPatcher" a "installserver". HelloCarbide se postará o hack běžícího systému, takže jsou pak přístupné i skryté systémové soubory a adresáře. Poté se dá do systémových složek nainstalovat installserver, a ten ruku v ruce s RomPatcherem pak zajistí, že HelloCarbide který odvedl špinavou práci už nebude potřeba, protože následně už půjde kdykoli přepínat chování OS podle libosti. Tedy, že například půjde vypnout ověřování certifikátů.

Aby i Javovské programy měly přístup k funkcím které uživatel (a nikoli Nokia) povolí, k tomu pro změnu slouží mantra "maximummode: blanket". Samozřejmě je potřeba mít předtím nainstalovaný RomPatcher. Patch s poetickým názvem "c2z" zajistí že se před prohledáváním disku "Z:" mobil pokaždé podívá na stejnou složku na disku "C:", a pak už není žádný problém upravit si konfigurační soubor pro midlety tak aby mobil dovolil uživateli nastavit si přístupová práva podle vlastního uvážení.

Teď už si konečně můžu v ReadManiacu číst knížky bez otravných varování. Ale stálo to Nokii za to? Bez těch patchů bych asi mobil s díky vrátil, protože crippleware maskovaný za trapné věty o tom že "chceme pro uživatele bezpečí" je podle mě typickou ukázkou toho jak by se operační systém neměl nikdy chovat.

Uff. Tak jsem se vykecal, a jdu zase hrát Monkey Island v symbianovském ScummVM :-).

3 komentářů:

Embrio.cz řekl(a)...

Hoj.Vítej ve světě symbianu!Kdybys někdy něco sháněl na svůj symbian,napiš na www.embrio.cz .Je to začínající web nejen o symbianu.A neboj se že by ti nikdo neporadil!Stačí napsat do fora.Jsou tam taky programy a hry ke stažení,a mnohem víc!

Anonymní řekl(a)...

Velký souhlas. Nokia v návalu ochrany uživatele před nechtěným útokem tak znesnadnila vývoj aplikací pro své Symbian modely, že mnoho lidí, než by podstoupili toto martyrium, se na to vykašlali.

Je smutné, že není možno nějak slušně a férově v telefonu ono zabezpečení vypnout nebo poskytnout vývojářům více volnosti.

Já jsem vývojář začátečník pro S60 a naštěstí podpis Java aplikací pro mne problém není, mám vlastní certifikát od Verisignu. Můžu si podepsat libovolné aplikace libovolně krát. Ale symbiansigned jsem ještě nevyužil, protože za 200 USD mít k dispozici pouhých 5 podpisů mi přijde jako maximální zlodějina. A dev certifikát nefunguje, jak již je ve článku napsáno.

Všem co se chtějí zabývat vývojem Symbian aplikací bych chtěl popřát pevné nervy a hodně štěstí, protože to budou jistě potřebovat. Pro začátečníky bych tu měl odkazy, které by se jim mohly v budoucnu hodit.

http://symbiantechnologies.blogspot.com/

http://www.symbiantutorial.org/symbian-tutorial/?Symbian_C%2B%2B_Programming_Tutorial

Zdraví, Pepa

Anonymní řekl(a)...

"No a vo tom to je".Bezny uzivatel si koupi MT,aby mohl telefonovat a psat kratke zpravy.Pozdeji,kdyz se objevi na trhu novy,hezci,tak svuj stary odreny MT vyhodi.
Ale nekteri zjisti,ze telefon ma mnohem na vic a nekolikrat ho zhodnoti napr. instalacemi aplikaci.
Odstranenim "klacku pod nohama" od vyvojaru Nokie behem nekolika mesicu maji op.system Symbian pod kontrolou,bez chybovych hlasek s upravami primo v systemu. cert