Android a wolnoĹÄ uĹźytkownikĂłw
Richard StallmanDo jakiego stopnia Android szanuje wolnoĹÄ swoich uĹźytkownikĂłw? Dla ceniÄ cego sobie wolnoĹÄ uĹźytkownika to najwaĹźniejsza kwestia odnoĹnie dowolnego oprogramowania.
W 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
- 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.
Pierwotnie opublikowano w The Guardian
Wesprzyj kampaniÄ Free Your Android.