Android a wolność uĹźytkownikĂłw

Richard Stallman

Do jakiego stopnia Android szanuje wolność swoich uĹźytkownikĂłw? Dla ceniącego sobie wolność uĹźytkownika to najwaĹźniejsza kwestia odnośnie dowolnego oprogramowania.

ruchu wolnego oprogramowania rozwijamy oprogramowanie, ktĂłre respektuje wolność uĹźytkownikĂłw, byśmy zarĂłwno my jak i Wy mogli uniknąć oprogramowania, ktĂłre tego nie robi. W przeciwieństwie do tego, idea „open source” skupia się na tym, jak rozwijać kod; jest to inny sposĂłb myślenia od tego, gdzie wartością nadrzędną jest raczej jakość kodu, nie wolność. Zatem, kwestią tutaj nie jest, czy Android jest „otwarty”, ale czy pozwala uĹźytkownikom na bycie wolnymi.

Android to system operacyjny głównie dla telefonĂłw komĂłrkowych i innych urządzeń, na ktĂłry składa się Linux (jądro systemu, napisane przez Torvaldsa), trochę bibliotek, platforma Java i nieco aplikacji. Poza Linuksem, oprogramowanie składające się na Androida w wersji 1 i 2 zostało stworzone przez Google i wypuszczone na licencji Apache 2.0, ktĂłra jest wolną licencją bez copyleft.

Wersja Linuksa zawarta w Androidzie nie jest całkowicie wolnym oprogramowanie poniewaĹź zawiera „binarne kleksy” (tak jak Linux w wersji Torvalda), z ktĂłrych część jest faktycznie uĹźywana w niektĂłrych urządzeniach z Androidem. UĹźywane są teĹź inne niewolne firmware oraz niewolne biblioteki. Poza tymi elementami, kod składający się na Androida w wersji 1 i 2, w formie w jakiej został wypuszczony przez Google, jest wolnym oprogramowaniem – ale on sam nie wystarczy, Ĺźeby uruchomić urządzenie. NiektĂłre aplikacje zwykle dostarczane z Androidem rĂłwnieĹź są niewolne.

Android bardzo róşni się od systemu operacyjnego GNU/Linux, poniewaĹź zawiera bardzo mało GNU. Właściwie jedyny komponent wspĂłlny dla Androida i GNU/Linuksa to samo jądro (Linux). Ludzie, ktĂłrzy omylnie myślą, Ĺźe „Linux” odnosi się do całej kombinacji GNU/Linux plączą się z faktami i stawiają paradoksalne stwierdzenia takie jak „Android zawiera Linuksa, ale to nie Linux.”(1) Bez tych pomylonych stwierdzeń, sytuacja jest prosta: Android zawiera Linuksa, ale nie GNU, a zatem Android i GNU/Linux to z grubsza róşne rzeczy.

W Androidzie, jądro Linux pozostaje osobnym programem, ktĂłrego kod ĹşrĂłdłowy pozostaje na licencji GNU GPLv2. Połączenie Linuksa z kodem na licencji Apache 2.0 byłoby pogwałceniem praw autorskich, gdyĹź GPLv2 i Apache 2.0 są niekompatybilne. Wszelkie pogłoski, Ĺźe Google jakoś przepisał Linuksa na licencję Apache są błędne; Google nie ma prawa zmienić licencji na Linuksie, i nie prĂłbował. Gdyby autorzy Linuksa dozwolili uĹźywanie na licencji GPLv3, to moĹźna by ten kod połączyć z kodem na licencji Apache, a całość wydać na licencji GPLv3. Ale Linux nie został wydany w ten sposĂłb.

Google spełnił wymogi GNU GPL dla Linuksa, ale licencja Apache, ktĂłrą jest objęta reszta systemu Android, nie wymaga wydania ĹşrĂłdeł. Google oświadczył, Ĺźe nigdy nie opublikuje kodu ĹşrĂłdłowego Androida 3.0 (za wyjątkiem Linuksa). Kod ĹşrĂłdłowy Androida 3.1 takĹźe był wstrzymany, co czyniło Androida 3, za wyjątkiem Linuksa, po prostu niewolnym oprogramowaniem.

Google mĂłwił, Ĺźe ukrywał kod ĹşrĂłdłowy do 3.0 poniewaĹź był pełen dziur [ang.: buggy] i powinniśmy czekać na następne wydanie. To moĹźe być dobra rada dla tych, ktĂłrzy po prostu chcą uruchomić system Android, ale to uĹźytkownicy powinni o tym zadecydować. Jeśli programiści i inni lubiący się pobawić by chcieli coś zmienić w swoich wersjach, taki kod by im wystarczał.

Na szczęście, Google później opublikowało kod ĹşrĂłdłowy dla Androida 3.*, gdy opublikowana została wersja 4 (takĹźe z kodem ĹşrĂłdłowym). Problem opisany powyĹźej okazał się być raczej chwilową aberracją, niĹź obowiązującą polityką. JednakĹźe, co się raz wydarzyło, moĹźe się jeszcze powtĂłrzyć.

W kaĹźdym razie, większość kodu ĹşrĂłdłowego róşnych wersji Androida została opublikowana jako wolne oprogramowanie. Czy to oznacza, Ĺźe produkty uĹźywające tych wersji Androida respektują wolność uĹźytkownikĂłw? Nie, z kilku powodĂłw.

Po pierwsze, większość z nich zawierają niewolne oprogramowanie Google'a, ktĂłre komunikują się z serwisami jak YouTube czy Google Maps. To nie są oficjalnie częścią Androida, ale to nie oznacza, Ĺźe to jest w porządku. Wiele wolnych aplikacji dostępnych w poprdzednich wersjach Androida zostało zastąpionych niewolnymi; w 2013 roku pojawił się sprzęt Android, ktĂłry nie umoĹźliwiał oglądania zdjęć inaczej niĹź przez niewolną aplikację Google+. W 2014 r. Google ogłosiło, Ĺźe wersje Androida dla telewizorĂłw, zegarkĂłw i samochodĂłw będą w większości niewolne.

Większość urządzeń z Androidem jest sprzedawana z niewolnym oprogramowaniem Google Play software (wcześniej znane jako “Android Market”) Oprogramowanie to zachęca uĹźytkownikĂłw posiadających konto Google do instalowania niewolnych aplikacji. (To są przypuszczalnie uniwersalne tylne drzwi, backdoor, choć tego jeszcze nie udowodnionio.) Oficjalnie Google Play nie jest częścią Androida, ale to nie czyni sprawy ani odrobinę mniej złą.

Google przeniosło wiele podstawowych ogĂłlnych udogodnień do niewolnej biblioteki Usług Google Play [ang. Google Play Services]. Jeśli kod aplikacji samej w sobie jest wolnym oprogramowaniem, ale zaleĹźy od Usług Google Play, to aplikacja jako całość jest faktycznie niewolna; nie będzie działać na wolnej wersji Androida, takiej jak Replicant.

Jeśli cenicie wolność, nie chcecie niewolnych aplikacji z Google Play. Aby instalować wolne aplikacje na Android, nie potrzebujecie w ogĂłle Google Play, poniewaĹź są dostępne na f-droid.org.

Produktom Androida rĂłwnieĹź towarzyszą niewolne biblioteki. Oficjalnie nie są one częścią Androida, ale poniewaĹź róşne funkcjonalności Androida zależą od nich, są one częścią kaĹźdej rzeczywistej instalacji Androida.

Nawet pliki wykonywalne, ktĂłre są oficjalnie częścią Androida, mogą nie odpowiadać wydawanemu przez Google kodowi ĹşrĂłdłowemu. Producenci mogą zmieniać ten kod, i często nie publikują kodu ĹşrĂłdłowego dla swoich wersji. GNU GPL wymaga od nich dystrybucji kodu ich wersji Linuksa, jeśli to uszanują. Reszta kodu, na luĹşnej licencji Apache, nie zobowiązuje ich do publikowania kodu ĹşrĂłdłowego, ktĂłry jest faktycznie uĹźywany.

Jeden z uĹźytkownikĂłw zauwaĹźył, Ĺźe wiele programĂłw na systemie Android w jego telefonie zostało zmodyfikowane aby wysyłać osobiste dane do Motoroli. NiektĂłrzy producenci dodają ukryty pakiet szpiegujący taki jak Carrier IQ.

Replicant jest wolną wersją Androida. Deweloperzy zastąpili wiele niewolnych bibliotek dla niektĂłrych urządzeń. Te niewolne aplikacje są wyeliminowane, ale zapewne nie chcecie ich uĹźywać. Dla kontrastu, CyanogenMod (inna zmodyfikowana wersja Androida) nie jest wolnym oprogramowaniem, poniewaĹź zawiera niewolne programy.

Wiele urządzeń Android są „tyranami”: są zaprojektowane tak, aby uĹźytkownicy nie mogli instalować i uruchamiać zmodyfikowanego przez siebie oprogramowania, a jedynie wersje zatwierdzone przez jakieś firmy. W takiej sytuacji, pliki wykonywalne nie są wolne nawet jeśli były zrobione ze ĹşrĂłdeł, ktĂłre są dla Was wolne i dostępne. JednakĹźe, niektĂłre urządzenia Androida mogą być „rootowane” aby uĹźytkownicy mogli instalować róşne oprogramowanie.

WaĹźne firmware'y czy sterowniki są generalnie takĹźe własnościowe. Te obsługujące nadajnik sieci telefonicznej (obsługa GSM), WiFi, bluetooth, GPS, grafikę 3D, aparat fotograficzny, głośnik, a w niektĂłrych przypadkach takĹźe mikrofon. W niektĂłrych modelach, niektĂłre z nich są wolne, i jest kilka, bez ktĂłrych moĹźecie się obejść – ale nie moĹźecie się obejść bez mikrofonu czy nadajnika sieci telefonicznej.

Firmware do nadajnika sieci telefonicznej jest zainstalowany fabrycznie. Jeśli wszystko co robił to bycie tam i komunikacja z siecią telefoniczną, kiedy sobie tego Ĺźyczymy, mogliśmy go traktować jako ekwiwalent obwodu elektrycznego. Kiedy nalegamy na to, by oprogramowanie w urządzeniu obliczeniowym było wolne, moĹźemy przymknąć oko na zainstalowany firmware, ktĂłry nigdy nie będzie aktualizowany, poniewaĹź nie ma róşnicy dla uĹźytkownika, czy jest to program, czy raczej obwĂłd.

Niestety, w tym przypadku byłby to szkodliwy obwĂłd. Szkodliwe cechy są nieakceptowalne, bez znaczenia jak są implementowane.

W większości urządzeń z Androidem, ten firmware ma tak dużą kontrolę, Ĺźe moĹźe zmienić produkt w urządzenie nasłuchujące. W niektĂłrych, kontroluje mikrofon. W niektĂłrych, moĹźe przejąć pełną kontrolę nad głównym komputerem poprzez pamięć współdzieloną i w taki sposĂłb nadpisać lub zastąpić jakiekolwiek zainstalowane wolne oprogramowanie. W niektĂłrych modelach, moĹźliwe Ĺźe wszystkich, jest moĹźliwe aby zdalnie przejąć ten firmware i nadpisać resztę oprogramowania w urządzeniu. Celem wolnego oprogramowania jest, Ĺźebyśmy mieli kontrolę nad naszymi obliczeniami, a posiadanie backdoor jest z tym sprzeczne. O ile system obliczeniowy moĹźe mieć bugi, te urządzenia mogą być bugami. (Craig Murray, w książce Morderstwo w Samarkand, relacjonuje swoje zaangaĹźowanie w operację wywiadowczą, ktĂłra zdalnie przerobiła przenośny telefon nie-Androidowy na urządzenie nasłuchujące).

W kaĹźdym razie, firmware sieci telefonicznej w telefonach z Androidem nie jest odpowiednikiem obwodu, poniewaĹź sprzęt pozwala na instalację nowych wersji, i jest to faktycznie robione. PoniewaĹź jest to firmware własnościowy, w praktyce tylko producent moĹźe tworzyć nowe wersje – uĹźytkownicy nie mogą.

Łącząc te punkty, moĹźemy tolerować niewolny firmware sieci telefonicznej pod warunkiem, Ĺźe nowe jego wersje nie będą wgrywane, nie moĹźe ono przejmować kontroli nad głównym komputerem i moĹźe tylko komunikować się w czasie i sposĂłb określonym przez wolny system operacyjny. Innymi słowy, musi być ekwiwalentem obwodu, a ten obwĂłd nie moĹźe być złośliwy. Nie ma przeszkĂłd technicznych, by budować telefon z Androidem, ktĂłry posiadałby taką charakterystykę, ale nie wiemy o Ĺźadnym.

Android nie jest systemem, ktĂłry pozwala na rozwijanie go na nim samym; rozwĂłj Androida musi odbywać się na innych systemach. Narzędzia w “software development kit” (SDK) Google wydają się być wolne, ale sprawdzenie tego jest trudne. Pliki z definicjami dla niektĂłrych API Google nie są wolne. Instalacja SDK wymaga podpisania własnościowych licencji na oprogramowanie, ktĂłrych podpisania powinieneś odmĂłwić. Replicant SDK jest wolnym zamieninnikiem.

Ostatnio pisze się o wojnach na patenty. Podczas ostatnich 20 lat kiedy prowadziliśmy kampanię na rzecz likwidacji patentĂłw ostrzegaliśmy, Ĺźe takie wojny mogłyby wybuchnąć. Patenty na oprogramowanie mogą spowodować usunięcie niektĂłrych moĹźliwości Androida lub uczynić go całkiem niedostępnym. Więcej informacji o tym dlaczego nie powinno być patentĂłw na oprogramowanie znajdziecie na stronie endsoftpatents.org.

Jednak ataki patentowe i odpowiedzi Google nie są bezpośrednio związane z tematem tego artykułu: jak produkty Androida częściowo podchodzą etycznie do systemu dystrybucji i jakie mają niedociągnięcia. To takĹźe wymaga uwagi mediĂłw.

Android jest duĹźym krokiem naprzĂłd do etycznego, kontrolowanego przez uĹźytkownika, wolnego, przenośnego telefonu, ale droga jest jeszcze długa a Google podąża w złym kierunku. Hackerzy pracują nad Replicant, ale wsparcie kaĹźdego nowego urządzenia to sporo pracy, poza tym pozostaje problem firmware. Mimo, Ĺźe telefony z Androidem na dziś dzień są o wiele mniej złe niĹź telefony Apple lub Windows, nie moĹźna o nich powiedzieć, Ĺźe szanują Waszą wolność.

Przypis

  1. Ekstremalnym przykładem tego zamieszania jest strona linuxonandroid.com, ktĂłra pomaga „zainstalować Linuksa [sic] na urządzeniach Android”. To jest całkiem nieprawdą: co instalują to wersja systemu GNU, z wyłączeniem Linuksa, ktĂłry juĹź jest obecny jako część Android. PoniewaĹź ta strona promuje jedynie niewolne dystrybucje GNU/Linuksa, nie polecamy jej.