Это перевод страницы, написанной на английском языке.

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 было бы нарушением авторских прав, поскольку версия 2 GPL и лицензия 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. Они официально не являются частью системы, но это не устраняет недостатка продукта. Многие свободные приложения, доступные в более ранних версиях системы 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.

Даже программы, которые официально являются частью системы, могут не соответствовать исходному тексту, который выпускает Google. Производители могут изменять эти тексты, и часто они не выпускают исходный текст своих версий. GNU GPL требует от них распространения исходного текста их версий Linux, в предположении, что они соблюдают лицензию. Остальные программы, под неограничительной лицензией Apache, не требуют от них выпуска версии исходного текста, которой они на самом деле пользуются.

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

Replicant — свободная версия системы Android. Разработчики Replicant заменили многие несвободные библиотеки для определенных моделей устройств. Несвободные приложения исключены, но вы, конечно, и не хотите ими пользоваться. В отличие от Replicant, CyanogenMod (другая модификация Android) несвободен, поскольку содержит некоторые несвободные программы.

Многие устройства с Android — “тираны”: они спроектированы так, что пользователи не могут устанавливать и пользоваться своими собственными измененными программами; устройства работают только с версиями, одобренными какой-то компанией. В такой ситуации исполняемые файлы не свободны, даже если они собраны из исходных текстов, которые свободны и доступны для вас. Однако некоторые из устройств с Android можно “зарутить”, и тогда пользователи могут устанавливать другие программы.

Важные программы для подсистем и драйверы, как правило, также несвободны. Они отвечают за связь телефона с радиосетью, трехмерную графику, WiFi, bluetooth, GPS, камеру, динамик, а в некоторых случаях и микрофон. На некоторых моделях несколько из этих драйверов свободно, и есть такие, без которых можно обойтись,— но без микрофона и телефонной радиоаппаратуры вы не обойдетесь.

Программы устройства связи с телефонной сетью поставляются предустановленными. Если бы они там просто сидели и общались с телефонной сетью, когда вы хотите, мы могли бы считать, что это эквивалентно электрической схеме. Когда мы настаиваем на том, чтобы программы на вычислительном устройстве были свободны, мы можем не принимать во внимание предустановленных в подсистемах программ, которые никогда не будут обновляться, потому что для пользователя все равно, программа это или электрическая схема.

К сожалению, в данном случае это была бы вредоносная электрическая схема. Вредоносные особенности неприемлемы независимо от того, как они реализованы.

В большинстве устройств на базе Android эти программы контролируют так много, что продукт можно было бы обратить в подслушивающее устройство. В некоторых они контролируют микрофон. В некоторых они через разделяемую память могут полностью взять контроль над главным компьютером и таким образом обойти и заменить любые свободные программы, которые вы установили. На некоторых (возможно, на всех) моделях можно производить дистанционный контроль этих программ для подсистемы, чтобы переписывать остальные программы в устройстве. Смысл свободных программ состоит в том, что мы контролируем свои программы и вычисления; в системе с черным ходом этого нет. Хотя в любой вычислительной системе, возможно, есть подслушивающие жучки, эти устройства могут быть жучками. (Крейг Мерри в статье Убийство в Самарканде упоминает о своем участии в операции спецслужб, которые дистанционно обратили сотовый телефон (не на базе Android) ничего не подозревающей цели в подслушивающее устройство.)

Во всяком случае, программы для устройства связи с сетью в устройстве на базе Android не эквивалентны электрической схеме, потому что аппаратура позволяет устанавливать новые версии, и это в действительности делается. Поскольку это несвободные программы, на практике только производитель может создавать новые версии — пользователи не могут.

Сложив все это вместе, мы можем мириться с несвободными программами для устройства связи с сетью в телефоне при условии, что не будут загружаться новые версии, что они не смогут перехватывать управление главным компьютером и что они могут связываться с сетью только тогда и только так, как свободная операционная система решит и позволит им связываться с сетью. Другими словами, они должны быть эквивалентны электрическим схемам, и эти схемы не должны быть вредоносными. Технических препятствий к построению телефона на базе Android с такими характеристиками нет, но нам не известно ни об одном таком телефоне.

Android — не самостоятельная система; разработку для Android нужно вести на какой-то другой системе. Инструменты в “наборе для разработки программ” (SDK) компании Google, оказывается, свободны, но это трудно проверить. Файлы с определениями определенных протоколов программирования приложений несвободны. При установке SDK требуется подписать лицензию несвободных программ, а вам следует отказываться ее подписывать. Свободной заменой является SDK системы Replicant.

В последнее время выступления прессы, связанные с системой Android, сосредоточены вокруг патентных войн. В течение 20 лет кампаний за отмену патентов на программы мы предупреждали о том, что такие войны могут начаться. Патенты на программы могли бы отрицательно сказаться на возможностях Android и даже сделать систему недоступной. Более подробно о том, почему патенты на программы должны быть отменены, см. на endsoftpatents.org.

Однако патентные атаки и ответы Google не имеют прямого отношения к теме этой статьи: как продукты на базе системы Android частично приближаются к этичной системе распространения программ и как им это не удается. Этот вопрос тоже заслуживает внимания прессы.

Android — крупный шаг к этичному сотовому телефону, контролируемому пользователем с помощью свободных программ, но это долгая дорога, и Google поворачивает не в ту сторону. Хакеры работают над Replicant, но поддержка новой модели устройства — большая работа, и остается проблема с программами для подсистем. Несмотря на то, что сегодня телефоны на базе Android значительно лучше, чем смартфоны на базе систем Apple и Windows, мы не можем сказать, что они уважают вашу свободу.

Примечание

  1. Крайний пример этой путаницы мы видим на сайте linuxonandroid.com, где предлагают помощь в “установке Linux [!] на ваших устройствах на базе Android”. Это полностью неверно: устанавливают они версию системы GNU, исключая Linux, которая уже присутствует как часть системы Android. Поскольку тот сайт поддерживает только несвободные дистрибутивы GNU/Linux, мы его не рекомендуем.