Näytetään tekstit, joissa on tunniste froyo. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste froyo. Näytä kaikki tekstit

5. joulukuuta 2010

CyanogenMod 6

Edellisessä kirjoituksessa kerroin CyanogenModin asentamisesta HTC Wildfire -puhelimeen. Seuraavaksi kerron hieman kokemuksistani sen käyttöönotosta.

Vaikea alku
CM6 ei alkuun varsinaisesti hellinyt uutta käyttäjäänsä. Ensimmäinen huono merkki oli wlan-yhteyden puute. Näkyviä verkkoja selatessani tuntui, että luuri oli haistanut kaikki muut verkot koko kaupunginosassa omaani lukuun ottamatta. Onneksi sentään 3G-yhteys toimi, ainakin toistaiseksi.

Onneksi on varmuuskopiot
Päätin jättää langattoman verkon selvittämisen myöhemmäksi ja palauttaa Titanium Backupilla edellisessä asennuksessa tallentamani ohjelmat ja niiden asetukset. Ensin piti tietenkin hakea Titanium Backup Android-markkinapaikalta 3G-yhteyden yli. Kapuloita rattaisiin laittoi pätkivä yhteys ja lataus katkesikin useita kertoja ennen kun ohjelma oli asennettu. Kun sain sen lopulta käyntiin, se herjasi heti kärkeen, että tuntemattomista lähteistä tulevien pakettien asentaminen on sallittava käyttöjärjestelmän asetuksissa ennen kuin ohjelmia voidaan palauttaa. Kävin tekemässä pyydetyn muutoksen, mutta herja ei poistunut. Käynnistin jopa puhelimen kokonaan uudestaan ja yritin jälleen, mutta tuloksetta. Puolen tunnin taistelun jälkeen päätin luovuttaa. Ajattelin, että ehkä on ihan hyvä aloittaa puhtaalta pöydältä ja asentaa vain ne ohjelmat, joita oikeasti käytän. Puhelimessani oli jatkuvasti sisäinen muisti vähissä, joten ohjelmien karsiminen olisi ihan tervetullutta.

Lisää takaiskuja
Luonnollisesti seuraavaksi aloin asentelemaan käyttämiäni ohjelmia, joita en varmuuskopiosta saanut palautettua. Tässä vaiheessa 3G päätti sanoa itsensä irti kokonaan. Nyt minulla oli siis puhelin ilman ohjelmia ja ilman minkään valtakunnan verkkoyhteyttä (GSM:n lisäksi). Minua alkoi suoraan sanoen ahdistamaan. "Pitikö nyt mennä sotkemaan koko puhelin?" Älypuhelimeni äly oli vähissä.

Päätin kokeilla CM6:n eri version asentamista. Nightly buildien lisäksi saatavilla on release candidate -versioita joten latasin sellaisen ja buuttasin Hbootiin. Ohjeiden mukaisesti otin varmuuskopion vanhasta käyttöjärjestelmästä ja pyyhin puhelimen muistin. CM6 RC2 ei kuitenkaan asentunut, vaan sen sijaan vain informatiivisen virheilmoituksen "(bad)". Siitä päättelin asennustiedostossa olevan jotain vikaa. Kuten edellisellä kerralla, navigoin valikossa kohtaan, millä sain puhelimen muistikortin mountattua tietokoneellani ja huomasin asennuspaketin koon olevan 0B. Poistin sen ja latasin sen uudestaan. Unmounttasin muistikortin ja menin asentamaan pakettia. "(bad)"

Jos minua aikaisemmin ahdisti, niin nyt alkoi jo ihan oikeasti pelottaa. Olin nimittäin poistanut edellisen käyttöjärjestelmän ennen polttoyritystä ja uusien asentaminen ei tuntunut onnistuvan. Päätin kokeilla palaamista nightly build #40:een ja se suureksi helpotuksekseni onnistui.

Kaikki muuttuu paremmaksi
Olin jälleen samassa pistessä kuin pari tuntia aikaisemmin. Minulla oli CM6 ilman wlania ja ohjelmia. Tällä kertaa 3G oli palannut käytettävälle tasolle, joten kapula ei enää ollut täysin ummikko. Kello alkoi olla jo aika paljon, joten päätin asennella muutamia tärkeimpiä tarvitsemiani ohjelmia, nukkua välissä ja jatkaa taistelua aamulla. Vielä ennen unia kokeilin muutella wlan-reitittimen muutamia asetuksia ja katsoa saisiko niillä yhteyden aikaiseksi. Ei saanut.

Aamulla heräsin intoa täynnä ja jatkoin ohjelmien asentelemista 3G-yhteyden yli. Edellisenä iltana olin jo ottanut käyttöön Laucher Pro -työpöydän CM6:n mukana tulevan ADW:n sijaan. Ei sillä, että siinä varsinaisesti mitään vikaa olisi ollut, mutta kun kerran olin jo tottunut Laucher Pro:oon ja maksanut siitä, niin päätin jatkaa sen käyttäjänä. Säädin myös kolun sähköpostin asetukset kuntoon pätkivän 3G:n kanssa, koska tiesin tarvitsevani sitä päivän mittaan.

Jossain vaiheessa, kun puhelin alkoi olla käytettävässä kuosissa taas päätin palata selvittämään wlanin toimimattomuuden syytä. Aloin muuttelemaan asetuksia ja lopulta löysin ratkaisun. Kun ostin reitittimen kesällä minulla oli ongelmia liikennenopeuksien kanssa. Sain hädin tuslin 54mbit nopeudella (laatikon kannen mukaan) toimivasta purkista yhden megan edestä tavaraa alas. Syytä selvittäessä päädyin skannaamaan muiden lähiverkkojen kanavat ja muutamia laskutoimituksia myöhemmin tulin siihen tulokseen, että kanavalla 14 on eniten vapaita aaltoja. Reitittimeni ei kuitenkaan antanut asettaa kanavaa kuin korkeintaan 13:een, joten päädyin käyttämään sitä. Vaihdoin kanavalle kymmenen ja yhteys löytyi välittömästi.

Fillikset olivat edellisen illan murheen suosta nousseet jo kohtalaisen korkealle. Muutamat viimeiset puuttuvat lintuaiheiset ohjelmat vilahtivat luuriin huomattavasti liukkaammin kuin edelliset. Sain jopa ladattua uusimmat podcastit kuunneltavaksi koulumatkalla. Asensin vielä kaverini suosituksesta ohjelman nimeltä SetCPU. Olin lukenut, että sillä voi parantaa akkukestoa huomattavasti esimerkiksi siten, että ohjelma alikellottaa puhelimen suorittimen aina kun näppäinlukko on päällä. Matkalla kampukselle huomasin muutamia hienoja ominaisuuksia, mitä HTC:n käyttöjärjestelmässä ei ollut.

Kunnellessa audiota näppäinlukko päällä ruutuun tulee avausliuskan alapuolelle nappulat joilla voi ohjata toistoa avaamatta näppäinlukkoa. Suorastaan fantastinen ominaisuus! Toinen minkä huomasin oli se, että puhelimen sai myös äänettömälle (ja takaisin) avaamatta näppäinlukkoa.

Eikä siinä vielä kaikki
Kuva Niall Kennedy
Kaikkien alkuvaikeuksien jälkeen olin jo täysin muuttanut mielipiteeni CyanogenModin tuotoksesta. Kaikki edellisen järjestelmän toiminnallisuus oli palautettu, ja nyt olin omasta mielestäni jo voiton puolella. Positiiviset yllätykset jatkuivat silti. Pääsin esimerkiksi kokeilemaan pitkään kaipaamiani äänikomentoja. Harmi härmäläisille, että toimiakseen kaikkien tuttavien nimet pitää lausua amerikkalaisittain tai toimivuus on huono.

Niin tosiaan, ja sittenhän on vielä se, mistä tämä koko rumba tavallaan alkoi, eli just-in-time compiler. Se on Cyanogenin valikoissa piilotettu kokeellisten toimintojen alle ja niistä varoitetaan, että toimivuus on kaikkea muuta kuin taattu. Tiedustelin sen suoritusvarmuutta tämän porttauksen kehittäjältä ja hän sanoi sen toimivan vakaasti. Asetin sen päälle ja toastin (ruudulle pomppaavan ilmoituksen, mikä katoaa itsestään toim. huom.) antaman kehoituksen mukaisesti käynnistin puhelimen uudestaan. Nyt minulla oli lopultakin Froyo kaikilla herkuilla.

Yhteenveto
Jälkeenpäin voin sanoa, että käyttöjärjestelmän toi puhelimeeni rutkasti lisäarvoa. Ensinnäkin minulla on nyt tarvittaessa pääkäyttäjän oikeudet puhelimessa, mikä mahdollistaa monia asioita esimerkiksi sovelluskehityksessä. Muun muassa puhelimen tietokantojen selaaminen on mahdotonta ilman voimaa-antavaa risuaitamerkkiä. Sen lisäksi kaikki parannukset, mitkä käyttöjärjärjestelmään oli tehty version 2.1 jälkeen, kuten JITC, äänikomennot ja mahdollisuus käyttää puhelinta kannettavana wlan-tukiasemana.

HTC:n oma Sense-käyttöliittymä jakaa mielipiteitä. Jotkut tykkäävät, toiset eivät. Itse olen kallistumassa sille kannalle, että Sensen ja kaikkien muiden HTC:n omien ohjelmien poistaminen on parantanut puhelimen käytettävyyttä. Lähes kaikki samat toiminnot on saatavilla ilmankin, tosin ne ovat hajallaan, eivätkä samalla tavalla niputettuna yhdeksi paketiksi kuten Sensen kanssa on tehty. Oma kokemukseni on kuitenkin se, että HTC:n omat komponentit eivät ihan pärjää vertailussa. Ne ovat hieman bugisempia ja hitaampia kuin kilpailijat ja siksi näkisin, että käyttökokemus on nyt parempi.


Lisäys (6.12.2010 9:38):
Vain muutama tunti tämän kirjoituksen julkaisemisen jälkeen CyanogenMod 6.1 on saanut vakaan julkaisun. Julkaisusta enemmän täällä.

3. joulukuuta 2010

Operaatio: Froyo

Taustaa
Ostin kesällä itselleni pitkään himoitsemani Android-puhelimen. Koska olin liikkeellä opiskelijabudjetilla, enkä kytkykauppoihin halunnut ryhtyä, puhelimeksi valikoitui HTC:n (silloin) uusi malli nimeltä Wildfire. Wildfiren mukana tulee Androidin versio 2.1.

Android-tuoteperhe (Kuva Niall Kennedy)
Jo ennen  puhelimen saapumista kauppoihin HTC lupasi päivittää käyttöjärjestelmän versioon 2.2, joka tuttavallisemmin tunnetaan nimellä Froyo (kuvassa oikealla). Froyon tiedettiin sisältävän implementaation Androidille ajonaikaisesta java-kääntäjästä joka englanniksi tunnetaan nimellä just-in-time compiler.  JITC:n kerrottiin tuovan jopa lähes 100% parannuksen koodin suoritusnopeuteen, mikä olisi alitehoiselle budjettiluokan puhelimelle enemmän kuin tervetullut parannus. Aikatauluksi ilmoitettiin Q3 2010, eli heinä-syyskuu. Tuli lokakuu, ei päivitystä. Lähetin HTC:lle sähköpostia, missä tiedustelin Froyon Wildfire-käännöksen julkaisuajankohtaa. Vastauksena sain geneerisen viestin, missä kerrottiin, että yhtiöllä ei ole mitään uutta tiedotettavaa tiedusteluni tiimoilta. Tuli marraskuu, eikä vieläkään julkaisua tai edes ilmoitusta uudesta arvioidusta julkaisupäivästä. Tuli joulukuu ja silloin minulta loppui kärsivällisyys.

HTC Wildfire
Froyon  koodi oli julkaistu jo kesäkuussa ja siitä lähtien hakkeriporukat ovat tehneet siitä omia käännöksiään eri laitteille. Törmäsin loppukesästä IRC:ssä seikkaillessani sattumalta Cyanogenmod-jakelun Wildfire-käännöksestä vastaavaan koodariin, ja kuulin, että koodinimi CM6 olisi valmistumassa tuota pikaa. Oletin kuitenkin HTC:n ehtivän ensin, joten en silloin edes harkinnut sen kokeilemista. Kun HTC:n julkaisuaikataulu alkoi venyä sietämättömän pitkälle päätin käydä katsastamassa CM6:n tilanteen Xdadevelopers-forumilta. Positiivisten kirjoitusten rohkaisemana menin vielä projektin IRC-kanavalle kyselemään henkilökohtaisia kommentteja käyttäjiltä varmistaakseni, että en saata puhelintani käyttökelvottomaan tilaan. Minulla on eräs Android-sovellusprojekti kesken, enkä halunnut tärvellä rautadebuggeriani.

Asennus
IRC:ssä sain linkit yksityiskohtaisiin ohjeisiin uuden käyttöjärjestelmän asentamiseksi. Käytännössä asentaminen jakautui seuraaviin vaiheisiin:
  1. Rootin oikeuksien hankkiminen ja bootloaderin asennus
  2. Asennettujen ohjelmien varmuuskopiointi
  3. Recovery-moodiin buuttaaminen
  4. Käyttöjärjestelmän varmuuskopiointi
  5. Muistin tyhjennys
  6. Uuden käyttöjärjestelmän ja Google-työkalujen poltto
Seuraavaksi kerron mainituista työvaiheista tarkemmin.

Got root?
Pitkäaikaiselle Linux-käyttäjälle tuli järkytyksenä se tieto, että Linux-puhelimen ostajalla ei ole pääkäyttäjän oikeuksia omassa puhelimessaan. Puhelinten valmistajat ovat estäneet sen! Tietenkään se ei ole kuin hidaste; kaikille alaan vihkiytyneille lienee selvää, että kiertokeinot löytyvät ja ne etsitään.

Sain IRC-kanavalla linkin loistavaan ohjeeseen, jonka käyttäjä nimimerkillä Turkeys on kirjoittanut. Puhelin piti laittaa debug-moodiin, tosin minun tapauksessa se oli jo valmiiksi, koska minulla on edellä mainittu Android-sovellusprojekti menossa. Lisäksi piti sallia ohjelmien asentaminen tuntemattomista lähteistä, mutta sekin oli puhelimessani jo valmiiksi asetettu. Roottaamista varten latasin pari ohjelmapakettia ja ryhdyin toimeen. 

Unrevoked-niminen paketti tuli binääriäen kera Windowsille, Mac OS:lle ja Linuxille. Roottaaminen vaati käytännössä yhden ohjelman ajamisen, mikä buuttasi puhelimen ADB-väylää pitkin muutamaan kertaan ja asenteli kaiken tarpeellisen root-oikeuksien saamiseksi. Tässä kohtaa kuitenkin törmäsin ongelmaan. Minulla oli jäänyt toiselle työpöydälle Eclipse auki ja se ilmeisesti kaappasi ADB-väylän käyttöönsä ensimmäisen buutin jälkeen ja asennus jäi puolitiehen. Sen lopulta tajuttuani suljin Eclipsen ja yritin uudestaan. Sillä kertaa asennus meni läpi ongelmitta ja komennon 'su' jälkeen komentorivillä minua tervehti tuttu ja turvallinen risuaita komentokehoitteen perässä.

Ohjelmien varmuuskopiointi
Ohjelmien varmuuskopiointia varten piti asentaa Android-kauppapaikasta Titanium Backup. Sen avulla käyttäjä voi tallentaa käyttämänsä ohjelmat asetuksineen SD-kortille ja palauttaa ne sieltä uuden käyttöjärjestelmän asentamisen jälkeen. Ennen kuin ohjelmasta saa kaiken hyödyn irti, piti ohjelman sisällä asentaa vielä Busybox-niminen ohjelmapaketti. Varmuuskopioitavia tiedostoja löytyi puhelimestani noin 180 kappaletta ja niitä tallennettaessa ilmeni ongelma. Olin asentanut ohjelman, joka pakottaa ohjelmat pyytämään käyttäjältä luvan pääkäyttäjän oikeuksien käyttämiseen. Normaalisti oikeudet annetaan kullekin ohjelmalle kerran ja sen jälkeen se muistaa valinnan. Titanium Backupin tapauksessa kuitenkaan se ei toiminut odotetulla tavalla ja jouduin antamaan luvan rootin oikeuksiin ehkä noin viisi kertaa jokaista kopioitavaa tiedostoa kohden. Pian kävi selväksi, että Superuser Request -ohjelma on poistettava tai kopioinnissa menee koko yö. Sain lopulta varmuuskopion tehtyä ja pääsin siirtymään seuraavaan vaiheeseen.

HBoot
Seuraavaksi oli aika polkaista käyntiin roottauksen yhteydessä asennettu bootloader. Se tapahtui siten, että puhelin sammutettiin ja käynnistettäessä pidettin miinusmerkkistä volyyminappia pohjassa. Bootloaderin valikko oli kohtuullisen karu ja siinä navigoimiseen käytettiin volyyminappeja, trackballia ja virtanappia. Wildfiren ruudun alareunassa olevat kapasitiiviset napit eivät olleet käytössä. Ensimmäisenä otettiin varmuuskopio käyttöjärjestelmästä SD-kortille. 

Cyanogenmod 6 HTC Wildfiressa
Sen jälkeen tyhjennettiin puhelimen sisäinen flash-muisti. Tässä vaiheessa tajusin, että minulla olisi pitänyt olla uuden käyttöjärjestelmän sekä Google-työkalujen asennuspaketit muistikortilla. Aihetta hätään ei kuitenkaan ollut; bootloaderista löytyi valinta, millä puhelin luovutti muistikortin tietokoneeni käyttöjärjestelmälle mountattavaksi ja pari minuuttia myöhemmin tarvittavat tiedostot olivat kortilla. Valitsin asennettavaksi CM6:n uusimman nightly buildin, eli version #40.

Viimeinen vaihe oli uuden Cyanogenmodin ja Googlen työkalujen polltaminen puhelimen muistiin. Molemmat opetaatiot sujuivat sekunneissa ja sitten Froyoni oli valmis buutattavaksi! Uuden käyttöjärjestelmän ensimmäinen buuttaus kestää aina useita minuutteja, kun Dalvik-virtuaalikone kerää itsensä kasaan. Sim-lukituksen avauduttua minua odotti ADW-työpöytä ja Android 2.2 ilman HTC:n omia hömpötyksiä.

Käyttökokemuksista uudessa ympäristössä kerron seuraavalla kerralla.

Linkkejä: