Цей переклад може не відображати змін, внесених із 2023-05-20 у англійський оригінал.

Ви можете поглянути на ці зміни. Будь-ласка перегляньте файл README стосовно перекладів для того, щоб отримати інформацію про координування перекладів цієї статті.

Android і користувацька свобода

Наскільки Android поважає свободу тих, хто ним користується? Якщо ви користуєтесь комп'ютерами й цінуєте свободу, це найважливіше питання, яке вам варто ставити перед будь-якою програмною системою.

Ми як рух за вільне програмне забезпечення, розробляємо програмне забезпечення з дотриманням користувацьких свобод, щоб і ми, і ви могли врятуватись від того програмне забезпечення, яке їх не дотримується. Натомість ідея «відкритого коду» зосереджується на методології розробки коду; це інша течія мислення, де головна цінність — якість коду, а не свобода. Тож ми переймаємось не тим, чи є Android «відкритим», а тим, чи залишає його використання нас і вас вільними.

Android — це операційна система насамперед для мобільних телефонів та інших пристроїв, яка складається з Linux (ядра Торвальдса), кількох бібліотек, платформи Java й кількох застосунків. За винятком Linux, програмне забезпечення, наявне в Android версій 1 і 2, було розроблено переважно в Google; Google випустили їх під ліцензією Apache 2.0 — поблажливою ліцензією вільного програмного забезпечення без копілефту.

Версія Linux у складі Android — не повністю вільне програмне забезпечення, бо містить невільні «двійкові блоби» (як і Торвальдсова версія Linux), деякі з яких дійсно використовуються в деяких Android-пристроях. Платформи Android також використовують інші невільні вбудовані програми й невільні бібліотеки. За їх винятком, вихідний код Android версій 1 і 2, у тому вигляді, в якому його випустили Google, є вільним програмним забезпеченням — але цього коду недостатньо для роботи пристрою. Деякі застосунки, з якими зазвичай поставляється Android, також невільні.

Android суттєво відрізняється від операційної системи GNU/Linux, оскільки майже не містить GNU. Тобто єдиний спільний складник Android та GNU/Linux — це Linux, їхнє ядро. Помилково вважаючи, що «Linux» означає ціле поєднання GNU/Linux, люди плутаються в цих фактах і висловлюють парадокси: «Android містить Linux, але він не Linux».(1) Якщо не губитися в такій плутанині, все просто: Android містить Linux, але не GNU; таким чином, Android та GNU/Linux — різні речі, бо єдине спільне в них — це Linux.

У межах Android ядро Linux залишається окремою програмою, вихідний код якої доступний під GNU GPL версії 2. Поєднання Linux із кодом під ліцензією Apache 2.0 порушило б авторські права, бо GPL версії 2 та Apache 2.0 несумісні. Чутки, ніби Google якось перевели Linux під ліцензію Apache, хибні; Google не вповноважені змінювати ліцензію коду Linux і не намагалися цього робити. Якби авторки й автори Linux дозволяли користуватись ним під GPL версії 3, тоді цей код можна було б поєднати з кодом під ліцензією Apache, і це поєднання можна було б випустити під GPL версії 3. Але Linux не було випущено таким чином.

Google дотримались вимоги Загальної громадської ліцензії GNU для Linux, але ліцензія Apache решти Android не вимагає оприлюднення вихідного коду. Google сказали, що ніколи не випустять вихідного коду Android 3.0 (крім Linux). Вихідний код Android 3.1 також було затримано, тобто Android 3, за винятком Linux, був просто невільним програмним забезпеченням.

Google сказали, що не випускають коду 3.0 через його вади, й що людям слід дочекатись наступного випуску. Це могло бути хорошою порадою для тих, кого цікавить просто робота Android, але в них було віднято свободу ухвалити це рішення самостійно. А ті, хто вміє розробляти й допрацьовувати, не отримали змоги перенести які-небудь зміни до своїх версій.

На щастя, Google згодом випустили вихідний код Android 3.*, коли випускали версію 4 (одразу з вихідним кодом). Описана проблема виявилась тимчасовим відхиленням, а не розворотом політики. Втім, це все ж сталось, а отже може статись і знову.

Хай там як, вихідний код різних версій Android було переважно випущено як вільне програмне забезпечення. Чи означає це, що вироби з використанням цих версій Android поважають користувацьку свободу? Ні — з кількох причин.

Перш за все, більшість із них містять невільні застосунки Google для зв'язку з такими службами, як YouTube і Google Maps. Офіційно вони не входять до Android, але це не означає, ніби з виробом усе гаразд. Багато вільних застосунків, доступних для ранніх версій Android було замінено невільними застосунками; в 2013 з'явились Android-пристрої, на яких переглядати знімки можливо лише невільним застосунком Google+. У 2014, Google оголосили, що Android версії для телевізорів, годинників і автівок будуть переважно невільними.

Більшість Android-пристроїв містять невільні програми Google Play (раніше «Android Market»). Це програмне забезпечення заохочує тих, хто має обліковий запис Google, встановлювати невільні застосунки. Воно також містить бекдор, який дає Google змогу примусово встановлювати чи видаляти застосунки. (По суті, бекдор діє на всіх пристроях одразу, хоча цього не доведено.) Google Play офіційно не є складником Android; це не робить його анітрохи менш поганим.

Google посунули чимало основних загальних функцій до невільної бібліотеки Google Play Services. Якщо застосунок має вільний код, але залежить від Google Play Services, то на практиці весь застосунок невільний; він не може працювати на вільній версії Android, наприклад на Replicant.

Якщо ви цінуєте свободу, уникайте невільних застосунків, які пропонує Google Play. Встановлювати вільні Android-застосунки можливо без Google Play: отримайте їх із f-droid.org.

Android-вироби містять і свої невільні бібліотеки. Офіційно вони не є частиною Android, але оскільки різний функціонал Android на них спирається, вони є частиною практично будь-якого встановлення Android.

Навіть програми, які офіційно є частиною Android, можуть не відповідати вихідному коду від Google. Виробники пристроїв можуть вносити зміни й часто не випускають вихідного коду своїх версій. GNU GPL зобов'язує їх поширювати код їхніх версій Linux, якщо вони законослухняні. Решта коду, під поблажливою ліцензією Apache, не вимагає випускати ту версію вихідного коду, яку вони дійсно використовують.

Один користувач виявив, що до багатьох програм у тій системі Android, із якою він придбав пристрій, було вписано надсилання особистих даних до Motorola. Деякі виробники додають приховані пакунки комплексного стеження, наприклад Carrier IQ.

Replicant — це вільна версія Android. Розробниці й розробники Replicant замінили багато невільних бібліотек для деяких моделей пристроїв. Невільні застосунки вилучено, але ви б і не хотіли їх використовувати. Контраст: LineageOS (інша змінена версія Android, взята за основу Replicant) не є вільною, бо містить деякі невільні програми.

Багато Android-пристроїв — «тирани»: їх розроблено таким чином, щоб ви не мали змоги встановити й використовувати змінені вами програми, а мусили покладатись на версії компанії. В таких випадках, виконувані файли невільні, навіть якщо їх зібрано з вільного й доступного вам вихідного коду. Проте деякі Android-пристрої можливо «рутувати» (змусити надати root — адміністративні права), щоб встановити інше програмне забезпечення.

Важливі вбудовані програми чи драйвери переважно також власницькі: для мережі мобільного зв'язку, WiFi, bluetooth, GPS, 3D-графіки, камери, динаміка й часом навіть для мікрофону. Деякі з них можуть бути вільними в тої чи іншої моделі, а без деяких можливо обійтись — але ви не обійдетесь без мікрофона чи мережі мобільного зв'язку.

Програми мобільної мережі — вбудовані. Якби все, що вони робили, — це бути на місці й на вашу вимогу передавати щось у мережу, ми вважали б їх рівнозначними електронній схемі. Наполягаючи, що програми на обчислювальному пристрої мусять бути вільними, ми можемо не зважати на вбудовані програми, які ніколи не змінюються, бо з користувацької точки зору неважливо, програма це чи схема.

На жаль, у цьому випадку йдеться про зловмисну схему. Зловмисні функції неприйнятні незалежно від того, як їх втілено.

На більшості Android-пристроїв ці програми мають стільки влади, що можуть перетворити виріб у пристрій прослуховування. На деяких вони можуть керувати мікрофоном. На деяких вони можуть отримувати повний контроль над основним комп'ютером через спільну пам'ять, у якій вони можуть замінити будь-яке встановлене вами вільне програмне забезпечення. На деяких моделях, якщо не на всіх, зовнішній контроль над цими вбудованими програмами здатний замінити решту програмного забезпечення на пристрої. Суть вільного програмного забезпечення — мати контроль над своїми пристроями й своїми обчисленнями; система з бекдором не є вільною. Будь-яка обчислювальна система може містити вади, але ці пристрої можуть бути вадами. Креґ Мюрей у книзі Вбивство в Самарканді розповідає про свою участь у розвідувальній операції, де мобільний телефон (не Android) було через мережу перетворено на пристрій для прослуховування цілі, яка про це навіть не підозрювала.

Хай там як, але вбудовані в Android-телефон програми для мобільної мережі не рівнозначні схемі, бо апаратне забезпечення дає змогу встановлювати нові версії, й це справді робиться. Оскільки вбудовано власницьку програму, на практиці лише виробництво може створювати нові версії, а ви — ні.

Склавши ці тези докупи, ми можемо терпіти невільне програмне забезпечення для мобільної мережі, якщо його неможливо оновити; воно не може отримати контроль над головним комп'ютером; і воно не може здійснювати зв'язок, поки вільна операційна система йому не дозволить (якщо взагалі дозволяє). Іншими словами, воно мусить бути рівнозначним електронній схемі, й ця схема мусить не бути злочинною. Технічно цілком можливо виготовити Android-телефон із такими характеристиками, але нам не відомо про жодне таке виробництво.

Android не є самовідтворюваною системою; розробка Android мусить вестись на певній іншій системі. Засоби Google SDK («набору для розробки програм») виглядають вільними, але перевірити це — важка праця. Файли оголошення деяких API Google невільні. Встановлення SDK вимагає підписання власницької ліцензії програмного забезпечення, яку вам слід відмовлятись підписувати. Replicant SDK — вільна заміна.

Преса згадує Android у контексті патентних війн. За 20 років кампаній за скасування патентування програм ми неодноразово попереджали про ймовірність таких війн. Патенти на програмне забезпечення можуть зобов'язати Google вилучити певні можливості — чи й саму платформу Android. Перегляньте endsoftpatents.org, щоб дізнатися більше про те, чому патентування програм мусить бути скасовано.

Проте патентні атаки і відповіді Google лише опосередковано зачіпають тему цієї статті: чому Android-вироби — частково (й лише частково) етична система поширення програмного забезпечення. Це питання також заслуговує на увагу преси.

Android — великий крок до етичного мобільного телефону з користувацьким контролем і вільним програмним забезпеченням, але до цього ще як до неба рачки, й Google спрямовує його в хибному напрямі. Триває любительська робота над Replicant, але підтримка різноманітних пристроїв вимагає великих зусиль і не розв'язує проблеми вбудованих програм. Android-телефони сьогодення значно менш шкідливі, ніж телефони Apple чи Windows, але неможливо вдавати, ніби вони поважають вашу свободу.

Виноска

  1. Крайній випадок такої плутанини можна побачити на сайті linuxonandroid.com, який підказує, як «встановити Linux [sic] на ваші Android-пристрої». Це абсолютно хибно: вони встановлюють версію системи GNU — за винятком ядра Linux, котре й так наявне в складі Android. Оскільки сайт підтримує лише невільні дистрибутиви GNU/Linux, ми його не радимо.