niedziela, 15 maja 2011

CM7 dla Milestone

Nie będę się chwalił ile zajęło mi wczoraj instalowanie najnowszego CM7 na Motorolę Milestone. Zupełnie też nie wiem czemu nie mogłem dzisiaj spać. Obudziłem się i pomyślałem, że napiszę ten artykuł, aby wyjaśnić starszemu pokoleniu jak można to zrobić; młodsi raczej nie potrzebują przewodników pisanych w tutejszym stylu.

Przejdźmy więc do rzeczy. Artykuł ten opisuje dość szczegółowo, w jaki sposób można zainstalować system operacyjny CyanogenMod (w skrócie CM) na telefonie Motorola Milestone.
Mimo tego tego, że w Internecie jest mnóstwo przewodników i porad jak to zrobić, postanowiłem napisać własny. Wydaje mi się, że powodem, dla którego spędziłem tyle czasu na instalację, którego nie podam, jest to, iż przewodniki te zawierały tylko kluczowe operacje o magicznych dla mnie nazwach, jak flashowanie romu, 3 x wipe lub nandroid backup. Pozwolę więc sobie podać dużo więcej szczegółów i istotnych informacji dla takich nieszczęśników, który nie kumają tak szybko, jak większość nastolatków, którzy piszą tego typu przewodniki.

W przeciwieństwie do moich poprzedników, nie będę tutaj umieszczał linków typu: tutaj jest paczka do wszystkiego, ściągnij ROM, pobierz flasha, itp., które nic czytelnikowi nie mówią, a nawet odstraszają każdego, kto odrobinę chciałby wiedzieć co i po co ma zostać pobrane na dysk. Co gorsze, gdy taki link przestanie działać, a często wczoraj miałem z tym do czynienia, to czytelnik kompletnie nie wie jak można obejść taki problem.

Krok 0. Podstawowe informacje.
Zanim przejdziesz do następnych kroków, muszę Cię powiadomić o tym, co zrozumiałem w każdym przewodniku. Mianowicie, iż operację zmiany systemu operacyjnego wykonujesz na własne ryzyko. W sieci jest mnóstwo wątków poświęconych problemom tych, którym to się nie udało. Pewnie domyślasz się już dlaczego. Przejdźmy więc dalej.

Oczywiście nie będę tutaj próbował zamieniać angielskich nazw na polskie odpowiedniki, bo przewodnik ten przestałby być czytelny. Tak musisz wiedzieć co to jest bootloader (pol. program ładujący się przy starcie telefonu, coś jakby BIOS w komputerze), czy backup (pol. kopia zapasowa).

Część 1.
Wiele źródeł opisujących instalację CM7 (wersja 7) opiera się na czymś, co nazywają OpenRecovery. Jest to program, za pomocą którego można np. zainstalować nowy system operacyjny, taki jak CM7. Jak to zrobić opisałem dopiero w części 2, gdyż okazuje się, że zanim uruchomisz OpenRecovery na sowim telefonie musisz najpierw wgrać nowy bootloader. Wielu nastolatków po prostu zapominało o tym powiadomić swojego czytelnika.

Ponieważ oryginalne oprogramowanie Motoroli ma jakoś zablokowany bootloader (program ładujący przy starcie) należy go najpierw odblokować. Dopiero wtedy będzie można załadować przy starcie telefonu takie programy jak OpenRecovery.

Aby odblokować bootloadera Motoroli, należy użyć oprogramowania od Motoroli :-), ale już nie od nich --- program bootloadera i to wcale nie jest śmieszne. Jak już wspomniałem wcześniej, bootloader w telefonie to coś jakby BIOS w komputerze. Aby wgrać nowy bootloader musisz zdobyć:
  • flash bootloadera (obraz programu ładującego, zwykle plik z rozszerzeniem sbf),
  • program, za pomocą którego wgrasz flash do telefonu.
To pierwsze można znaleźć w Internecie pod hasłem vulnerable flash milestone. Najbardziej zaufane źródło jest chyba tutaj: http://android.doshaska.net/rootable.
Drugie zaś wymaga czegoś, co może zniechęcić wielu, którzy obawiają się wirusów. Niestety program za pomocą którego wgrasz flash jest gotowym, wykonywalnym programem zarówno pod system Windows, jak i Linux. Ponieważ, gdy tylko pojawiają się obawy o wirusy, przechodzę pod system Windows, więc podam tutaj rozwiązanie dla użytkowników tego właśnie systemu. Ci drudzy nie powinni być na mnie źli, bo prawie każdy użytkownik Linuxa, ma gdzieś w domu również Windowsa. Program się nazywa RSDLite (produkt Motoroli) i nie mam pojęcia czy da się go zdobyć w legalny sposób. W wielu przewodnikach zauważyłem, że były jakieś problemy pod systemem Vista lub Win7. Ja miałem XP i niczego takiego nie zauważyłem. Może znów problemy te wzięły się z tego, że nie ma w sieci wielu przewodników takich, jak ten.
Na podanej wcześniej stronie, która wzbudziła moje zaufanie można pobrać pliki potrzebne do wykonania następujących czynności w celu wgrania nowego bootloadera. Zanim je podam, wiedz, że po ich wykonaniu z Twoim telefonem właściwie nic się nie stanie, tzn. system operacyjny Android i karta pamięci SD nie zmienią się wcale. Zmieni się tylko bootloader (coś jakby BIOS w komputerze). Oto czynności do wykonania:
  1. Pobierz program RSDLite 4.6; link znajdziesz tutaj.
  2. Pobierz plik flash (u mnie był to plik vulnerable_recovery_only_RAMDLD90_78.sbf); link również znajdziesz tutaj.
  3. Wyłącz swój telefon Motorola Milestone
  4. Wykonaj następujące czynności w celu uruchomienia telefonu w trybie bootloadera:
    • wysuń klawiaturę telefonu
    • wciśnij D-Pad do góry (w kierunku wyświetlacza) i przycisk Power, tzn. trzymając wciśnięty D-Pad włącz telefon
    • Powinien uruchomić się bootloader
  5. Podłącz telefon do komputera kablem USB.
  6. Włącz program RSDLite (wymagana wcześniejsza instalacja).
  7. Wybierz plik flash (rozszerzenie sbf) pobrany w kroku 2 i kliknij przycisk START.
  8. Zaczekaj troszkę (ok. 3 minuty), aż w programie RSDLite pojawi się słowo PASS w kolumnie "Status", albo "Progress" (nie pamiętam już).
    Nie zdziw się, gdy w tym czasie Twój telefon uruchomi się ponownie. Tak ma się stać.
Podsumowując, wgrałeś w ten sposób na partycję rozruchową nowy bootloader, który przyda się w części 3. Uwaga uruchamia się go w troszkę inny sposób, niż oryginalny bootloader od Motoroli. Instrukcję uruchamiania zobaczysz w części 3.

Część 2.
Wszystko, co skomplikowane jest już prawie za nami. Teraz pozostaje zająć się tym, co nazywają ROMami. ROM to nic innego, jak obraz systemu operacyjnego dla telefonu komórkowego; to coś jakby pliki *.iso dla Ubuntu. Aby jednak móc instalować różne ROMy (przepraszam), musisz mieć do tego odpowiedni program w swoim telefonie. Program ten będziesz musiał uruchomić w trybie bootloadera, gdyż z oczywistych powodów, pod działającym systemem Android nie można w tym czasie zainstalować nowego; choć kiedyś udało mi się to zrobić z Windowsem 98 :-). Najbardziej popularnym oprogramowanie do instalowania ROMów jest chyba OpenRecovery (od Androidiani), którego nazwa mówi, że służy on właściwie do czegoś innego. Można za jego pomocą wykonać wiele czynności archiwizujących oraz wspomniane magiczne czynności, jak: nandroid backup, czy 3 x wipe. Zaraz wyjaśnię.
Aby móc uruchomić program OpenRecovery na swoim telefonie, musisz go najpierw pobrać i zapisać na karcie SD w katalogu głównym:
  1. Na oficjalnej stronie androidiani-openrocevery znajdziesz dział "Downloads", gdzie można pobrać archiwum z programem (u mnie był to plik OpenRecovery-3_3.zip). Pobierz plik na swój komputer i go rozpakuj (plik oczywiście).
  2. Archiwum powinno zawierać dwie rzeczy: katalog OpenRecovery i plik update.zip. Wgraj je do katalogu głównego karty SD telefonu.
W ten sposób przygotowałeś sobie środowisko do uruchamiania OpenRecovery. Możesz spróbować zrobić to już teraz, ale jeszcze się wstrzymaj, bo nie masz jeszcze pliku ROM z nowym systemem operacyjnym Android.
Jak więc widzicie, trzeba było sporo napisać, aby móc mówić o tym, co nastolatkowie pisali w pierwszym zdaniu - CyanogenMod, a właściwie to jego siódma wersja, czyli CM7. Jest to obraz systemu operacyjnego, obecnie w wersji Android Gingerbread 2.3, działającego na jądrze Androida 2.2, bo nic lepszego na Motorolę Milestone na pewno się już nie ukaże :-( (sorry koledzy, to nie ja was namawiałem na ten telefon). Oficjalna wersja systemu operacyjnego dla Motoroli to Android 2.2, który tak naprawdę można było sobie legalnie zainstalować w Polsce mniej więcej miesiąc temu. Ja głupi oczywiście czekałem na tę wersję, bo nie wiedziałem jak zainstalować CM7.
Przejdźmy więc do pobrania CM7 na swój komputer. Oficjalna strona CyanogenMod podaje brak wsparcia dla modelu Milestone. Opiekują się natomiast modelem Droid --- jej amerykańskim odpowiednikiem. Niestety to, co podają dla Droida, nie działa dla Milestona. Należy więc korzystać z tego, co robią zasłużeni programiści, jak nadlabak. Jego profil na portalu github znajdziesz tutaj. To właśnie tam szukaj najnowszych wersji systemów operacyjnych do zainstalowania.
Pisząc ten przewodnik zauważyłem, że kilka godzin temu pojawił się właśnie najnowszy ROM:
Ja natomiast pobrałem wczoraj wersję 7.1.0 RC2.1 11.05.11 i na razie nie mam ochoty tego aktualizować. Wystarczy mi to co mam, a za jakiś czas, gdy trochę ochłonę, przejdę na nowszą wersję. Podsumowując
  1. Pobierz wybraną wersję CM7 (zob. linki powyżej) na swój komputer. Będzie to dość spory plik ZIP (ok. 97 MB).
  2. Skopiuj pobrane archiwum ZIP (nie rozpakowuj niczego) na kartę pamięci SD telefonu, do katalogu OpenRecovery/updates
Oprócz tego, należy (przynajmniej w pobranej przeze mnie wersji) jeszcze pobrać archiwum z aplikacjami Google. Zakładam, że chcesz używać Gmaila, Google Maps, itp. Z jakichś powodów (chyba licencyjnych) programista nadlabak tego nie umieszcza w swoich obrazach CM7. Musisz więc pobrać plik gapps-gb-xxxxxxxx-signed.zip, gdzie litery xxx oznaczają datę. Najbardziej zaufane źródło plików z aplikacjami gapps jest tutaj i tutaj. Na tej pierwszej stronie podają, że zaleca się do CM7 pobrać wersję z 7 marca, czyli plik gapps-gb-20110307-signed.zip, ja natomiast pobrałem wersję
która ma ponoć Google Talk w wersji z kamerą. Na razie tego nie testowałem, ale gdy zadzwoniłem do znajomego, to rzeczywiście włączyła się kamera :-).
Musisz więc wykonać:
  • Skopiuj archiwum gapps-gb-20110503-signed.zip do katalogu OpenRecovery/updates
Jak widzisz, to, co sobie wrzucisz do tego katalogu, będziesz mógł zainstalować w telefonie. Właśnie po to zrootowałeś (znów przepraszam za język) swój telefon.

Część 3.
W poprzedniej części przygotowałeś na karcie SD potrzebne oprogramowanie do instalacji nowego systemu operacyjnego. W skrócie były to:
  • OpenRecovery
  • CyanogenMod wer. 7 + aplikacje Google
Musisz teraz uruchomić telefon w trybie nowego bootloadera:
  • Wyłącz telefon (odłącz od niego kabel USB)
  • Wysuń klawiaturę.
  • Trzymając wciśnięty klawisz 'X' włącz telefon. Trzymaj wciśnięty klawisz 'X' dopóki nie pojawi się trójkąt
    Możesz już puścić klawisz 'X'. W wielu instrukcjach podano, że jeśli poniższy krok się nie udał, należy spróbować go wykonać z wciśniętym przyciskiem aparatu.
  • Następnie wciśnij przycisk Volume Up (głośności do góry) i trzymając go wciśniętego naciśnij przycisk aparatu. Powinien urumić się poniższy program. Możesz już puścić wszystkie przyciski (tylko nie upuść telefonu).
Wykonaj teraz czynność apply sdcard:update.zip. Możesz to zrobić używając wspomnianego D-Pada i przycisku OK (jako enter). W ten sposób powinien uruchomić się program OpenRecovery. To już prawie koniec. Teraz w jego menu poszukaj nandroid backup. Nie wiem co to robi, ale domyślam się, że coś archiwizuje. Może się to pewnie przydać, w razie gdyby podczas instalacji wystąpiły jakieś błędy. Ja wybrałem backup ALL i musiałem troszkę poczekać (ok. 5 minut).
Następnie poszukaj w menu słów WIPE. Te magiczne słowa wymażą Twoje ustawienia w telefonie. Jest to więc pierwsza operacja, z którą wiąże się utrata ustawień. WIPE przywróci ustawienia fabryczne Twojego telefonu. Twórcy CM7 proponują wykonać aż trzy rodzaje WIPEów. Nie pamiętam ich nazw, ale łatwo je odnaleźć w menu programu OpenRecovery. Można je wykonać w dowolnej kolejności.

A teraz instalacja nowego Androida. Wybierz w menu OpenRecovery Apply Update. Powinieneś wtedy zobaczyć zawartość tego, co wgrałeś do katalogu OpenRecovery/updates. Zainstaluj więc CM7 a następnie aplikacje Google. To pierwsze może trochę potrwać (ok 5 minut).

To wszystko. Wybierz w menu OpenRecovery "Reboot" i poczekaj, aż uruchomi się Twój nowy system Android 2.3.

Wiem, że przewodnik ten jest trochę rozwlekły, ale mam nadzieję, że komuś się to przydało.

Dodam raz jeszcze, że tego typu operacje zawsze niosą ze sobą jakieś ryzyko. Na przykład poprzez złe oprogramowanie może uszkodzić się Twój telefon. Często bowiem programiści domyślnie ustawiają parametry telefonu niezgodne z jego oficjalną specyfikacją. Chodzi mi tu np. o podkręcanie procesora, albo zmiana ustawień kamery. Dlatego zabawę taką najlepiej przeprowadzać na jakimś telefonie zastępczym, nie tym --- do codziennego użytku, na którym potrzebne są jedynie funkcje: zadzwoń/odbierz, wyślij/odbierz SMS/MMS/E-MAIL, działaj na baterii przez co najmniej 3 dni.
Jeśli chodzi o mnie, to akurat miałem tę swobodę, że gdy coś wybuchnie, to wciąż będę w sieci GSM.
Pozdrawiam

czwartek, 13 stycznia 2011

Olimpiada informatyczna dla gimnazjalistów

Kilka dni temu rozpoczęła się Olimpiada Informatyczna Gimnazjalistów. Wreszcie Olimpiada ma swoją własną stronę:

W tym roku zdziwiłem się bardzo, gdy zauważyłem, że zawodnicy mogą startować zarówno indywidualnie, jak i drużynowo.
Na razie tylko wstępnie spojrzałem na zadania. Wydaje mi się, że w tym roku są one dużo prostsze.

wtorek, 4 stycznia 2011

Bug w kolorowaniu składni przez geany

Ostatnio znalazłem kilka błędów w oprogramowaniu, z którym pracuję prawie codziennie. Tym razem to przez edytor geany (pod Ubuntu) straciłem kilka godzin szukając w swoim programie błędu, którego tak naprawdę nigdzie nie było.
Chodzi o kolorowanie składni, jak serwuje nam bardzo popularny edytor geany, szeroko dostępny pod wiele dystrybucji Linuksa, m. in. pod Ubuntu, którego używam. Otóż wspomniany edytor ma nieprawidłowe reguły kolorowania składni. Dokładniej chodzi o komentarze zakończone znakiem '\', który aż wstyd mi się przyznać użyłem przez przypadek w swoim kodzie. Nie ważne. Edytor powinien oznaczyć wówczas następną linię również jako komentarz. Niestety geany tego nie robi. Jako dowód załączam porównanie z innymi edytorami: kwrite i gedit, które prawidłowo rozpoznają komentarze.
wierz nr 4: kwrite i gedit prawidłowo rozpoznawają następna linię po znaku '\' jako komentarz; geany --- niestety nie :-(
Nie wiem kto za to zapłaci, ale przypomnę, że straciłem przez to kilka godzin.

Wszystkiego dobrego w Nowym Roku 2011!
Rafał