Weekend z modowaniem – konferencja CM na Google I/O

7 minut czytania
Komentarze

weekend_z_modowaniem
Witam w nowym odcinku z cyklu „Weekend z modowaniem”. Wasza reakcja na poprzednie wydanie „WzM” była bardzo zaskakująca i motywująca do pracy, postanowiliśmy więc kontynuować publikację artykułów z tej serii. Dzisiejszy odcinek będzie się różnił odrobinę od poprzednich, lecz mamy nadzieję, że Was zaciekawi i przybliży Wam temat modowania Androida.

Podczas tegorocznego Google I/O mieliśmy okazję zapoznać się z najnowszą wersją systemu Android o numerze 4.1. Poznaliśmy też tablet od Google i Asusa, który będzie jednym z pierwszych urządzeń wyposażonych w Jelly Bean. Ale Google I/O 2012 to nie tylko prezentacje nowych produktów, czy zapowiedzi aktualizacji systemu. To przede wszystkim konferencja dedykowana programistom i deweloperom, podczas której odbywa się mnóstwo prezentacji na wszelakie tematy, również związane z Androidem. Wszystkich zainteresowanych tematyką modowania Androida zaciekawi zapewne prezentacja przygotowana przez autorów popularnego CyanogenMod.

Prowadził ją sam Steve Kondik, szerzej znany jako Cyanogen, a towarzyszyli mu Ricardo Cerquiera (Arcee), Chris Soyars i Brint Kriebel – jeżeli interesujecie się modyfikowaniem Androida, to te nazwiska są dla Was zapewne znajome – wszyscy trzej panowie są członkami ekipy stojącej za ROM-em CyanogenMod. Podczas tego wciągającego wykładu Kondik poruszył kwestie otwartości Androida, wyzwań stojących przed niezależnymi deweloperami, przedstawił mechanizm ich pracy i podzielił się wieloma informacjami na temat ROM-u CyanogenMod i jego rozwoju. Steve Kondik pokazał, że CyanogenMod już dawno przestał być wyłącznie dopracowanym custom ROM-em dla wielu urządzeń, lecz stał się prawdziwą alternatywą dla oprogramowania wypuszczanego przez największych producentów. Przyjrzyjmy się kluczowym punktom wypowiedzi autora najpopularniejszego ROM-u dla urządzeń z Androidem.

steve-kondik

Podstawą, która umożliwiła powstanie CyanogenModa jest fakt, że Android jest platformą w pełni otwartą. Oznacza to, że jego kod jest publicznie dostępny i każdy może go pobrać i skompilować. Każdy może też go dowolnie modyfikować, wprowadzać swoje zmiany i usprawnienia, a dzięki licencji Apache nie jest zobligowany do publikowania zmodyfikowanego przez siebie kodu Androida. To właśnei dzięki temu wszelkie innowacje wprowadzane przez producentów są dobrze chronione i nie mogą być łatwo kopiowane przez konkurencję.

Skompilowanie Androida to jedno, inną kwestią pozostaje uruchomienie własnej wersji systemu na prawdziwym urządzeniu. Tu Steve Kondik daje dwie drogi do wyboru – wyprodukowanie własnego sprzętu, bądź skorzystanie z istniejącego. Jak się okazuje, obydwie drogi nie należą do najprostszych – w pierwszym przypadku potrzeba ogromnych nakładów finansowych, w drugim – swobodnego dostępu do partycji systemowych urządzenia oraz specyficznych plików konfiguracyjnych, umożliwiających skompilowanie systemu dla danego urządzenia. W praktyce bezproblemowe wgrywanie własnego oprogramowania umożliwia jedynie kilka urządzeń, głównie z rodziny Nexus. Reszta bądź to nie posiada odblokowanego bootloadera, bądź też producent nie daje pełnego wsparcia dla AOSP (Android Open Source Project). I właśnie w tym momencie niezbędni są niezależni deweloperzy, tacy jak ci, stojący za CM. Poświęcają oni swój prywatny czas, by maksymalnie dopracować oprogramowanie i doprowadzić wszystkie funkcje do pełnej sprawności. Steve Kondik zwrócił uwagę, że nie zawsze jest to proste i istnieje wiele czynników, które utrudniają ten proces, lecz wskazał też cechy nowoczesnych smartfonów, które go przyspieszają – o nich w kolejnych rozdziałach artykułu.

W dalszej części prezentacji Steve Kondik przybliżył historię CyanogenMod i przedstawił czynniki, które wpłynęły na powstanie fenomenu tego ROM-u. Pierwszym urządzeniem wspieranym przez CM był HTC Dream (G1), dal którego Kondik postanowił zbudować system ze źródeł, a następnie dodawał do kodu własne dodatki, usprawniające funkcjonowanie systemu. Zdziwił się popularnością, jaką w szybkim tempie osiągnął CyanogenMod, który nazwę wziął od formowego nicku Kondika i bardzo motywowało go to dalszej pracy nad projektem.

Sam autor CyanogenMod nazywa go alternatywną dystrybucją systemu Android, która dostępna jest dla około 100 różnych urządzeń. Jest on tworzony przez deweloperów dla deweloperów. Jednak w ostatniej edycji (CM9) skupiono się także na tym, by oprogramowanie było przyjazne również dla mniej zaawansowanego użytkownika – widać, że CM stara się trafić do jeszcze szerszej grupy odbiorców. Siłą CyanogenModa są ludzie, którzy za nim stoją – niemal każdy może sięgnąć po kod źródłowy ROM-u, dodać własne usprawnienia i zaproponować włączenie ich do oficjalnej wersji.

steve-kondik-1

Steve Kondik przedstawił też nowe dane liczbowe na temat CM. Liczba unikalnych użytkowników, która zainstalowała CyanogenMod sięgnęła już ponad 2,5 miliona. Są to wyłącznie urządzenia, których użytkownicy zgodzili się na anonimowe przesyłanie danych statystycznych, a w skład liczby nie wchodzą urządzenia, na których wielokrotnie instalowano ROM. Dziennie przybywa około 12 tysięcy nowych użytkowników CM.

Celem, jaki postawili przed sobą autorzy CyanogenMod było uwolnienie urządzeń spod oprogramowania narzucanego przez producentów i dostosowanie ich w taki sposób, by spełniały wszystkie stawiane przed nimi wymagania. Proces ten znacząco ułatwia fakt, że większość z dostępnych na rynku urządzeń bazuje na wyłącznie kilku układach – na przykład Tegra, OMAP, Snapdragon, czy Exynos. Jeżeli więc uda nam się rozpracować jeden smartfon czy tablet, to prawdopodobnie praca nad kolejnym, bliźniaczym SoC (System on Chip), będzie ułatwiona, dzięki dotychczasowym dokonaniom. Kolejnym czynnikiem upraszczającym pracę jest dostęp do platform referencyjnych, które producenci przygotowują dla deweloperów dla poszczególnych układów, oraz publikowany przez nich kod źródłowy. Na drodze niezależnych deweloperów stoją jednak zmiany i modyfikacje implementowane przez producentów urządzeń do Androida. Jak wspomnieliśmy wcześniej – dzięki licencji Apache zmiany kodu źródłowego Androida nie muszą być publikowane i są własnością ich autorów. Jedynie kod źródłowy jądra Linuxa musi być dostępny publicznie do pobrania, lecz producenci mają często w zwyczaju wypuszczanie niesprawnego kodu, co nie ułatwia pracy deweloperom. Za każdym razem, kiedy pracuje się nad wsparciem dla kolejnego smartfona czy tabletu podstawą jest uzyskanie uruchamiającego się systemu, do czego często potrzebnie jest wiele debugowania. Następnie deweloperzy pracują nad dodawaniem podstawowych funkcji, jak działający dotyk, czy łączność bezprzewodowa. Część z nich jest stosunkowo prosta do rozpracowania, gdyż w wielu urządzeniach z Androidem elementy te działają niemal bliźniaczo. Schody pojawiają się w momencie, gdy dana funkcja została mocno zmodyfikowana przez producenta i jest specyficzna wyłącznie dla kilku modeli. Największe trudności w tej kwestii sprawia obraz i dekodowanie wideo, dźwięk i aparat i uzyskanie ich pełnej sprawności jest wielkim wyzwaniem.

cyanogenmod-logo-cid

W dalszej części prezentacji Steve Kondik skupił się na przedstawieniu struktury ekipy stojącej za CyanogenMod. Pokazał, że są oni podzieleni na wiele zespołów i zrzeszają nie tylko deweloperów. Na czele stoi niewielka grupa najbardziej zaufanych osób, która sporadycznie wprowadza swoje zmiany do kodu CM, a bardziej skupia się na zarządzaniu całością i wyznaczaniu kierunku rozwoju, dbaniu o infrastrukturę serwerową i akceptowaniu zmian proponowanych przez deweloperów. CM posiada też swój zespół zajmujący się PR – obsługą mediów społecznościowych, zarządzaniem forum i pisaniem tekstów na blog. Największą grupę stanowią deweloperzy dbający o pełne wsparcie poszczególnych urządzeń – czasem nad jednym smart fonem czuwa tylko jedna osoba, czasem jest to gruba składająca się z 15 członków. Oprócz nich do ekipy należą też osoby piszące usprawnienia kodu, proponujący wprowadzenie nowych modyfikacji, a nawet tłumacze. Pokazuje to ogrom pracy i zaangażowanie, które całkowicie non-profit daje od siebie mnóstwo osób. Dołączenie do ekipy CM jest niezwykle łatwe i wymaga wyłącznie dobrych chęci i umiejętności – dostęp do kodu źródłowego jest całkowicie darmowy, więc każdy z nas może teoretycznie stać się małym trybem pracującym w wielkiej maszynie zwanej CyanogenMod.

Konferencja CyanogenMod podczas Google I/O przypadła mi do gustu, mam nadzieję, że Wam również. Jej poziom merytoryczny był bardzo dobry, a Steve Kondik niezwykle ciekawie przedstawił problemy w pracy niezależnego dewelopera oraz szczegóły związane z samym CM.

Motyw