F-Droid, сетевой репозиторий пакетов открытого ПО для Android, aka «Маркет» для тех, кто шлет патчи

    Тема альтернативных источников программного обеспечения для Android и альтернативных «маркетов» в частности уже несколько раз поднималась на Хабре, но большинство их описываемых сайтов были откровенно варезными рассадниками (поэтому ссылки не даю). Здесь же я хотел бы рассказать о проекте F-Droid.org, который ставит своей целью собрать и сделать легко доступными для пользователей приложения с открытым исходным кодом (Open Source) и четкими лицензиями использования и изменения.

    image

    image


    Маркет, шваркет и аппстор


    Прежде чем переходить непосредственно к F-Droid, хотелось бы сказать несколько слово о феномене «Маркетов» и состоянии Open Source на платформе Android.

    То, что нынче маркетологи окрестили «АппСторами» и «Маркетами», на самом деле было доступно уже более десятка лет для пользователей Linux и известно как «сетевой репозиторий пакетов». Концепций же менеджера пакетов вообще насчитывает десятки лет и является одной из сильнейших сторон Linux. Неудивительно, что эту концепция стала фактически «наилучшей практикой» (best practice) в области, так что даже Microsoft выпустил и продвигает свой менеджер пакетов.

    Хорошо, здравые идеи победили, и для Android существует Android Marketplace. Казалось бы, пользоваться — не нарадоваться, как большинство пользователей, не знакомых ни с чем другим и делают. Но у Android Market есть ряд проблем:

    • Market — закрытый компонент в целом открытой платформы.
    • Из предыдущего пункта следует, что на устройствах, сделанных на основе кода AOSP (Android Open Source Project), Маркета нет, и это типичная ситуация для недорогих устройств (заметьте, независимо от того, дешевый ли это китайский Noname, Inc, или вендоры с именем, вроде Amazon)
    • Если пользователи сами хотят модифицировать Android и сделать его лучше (например, CyanogenMod), то они также не могут легально использовать в своей разработке Маркет
    • Качество ПО в Маркете оставляет желать лучшего. В том смысле, что очень много «мусора» и откровенно подозрительных программ.
    • Последний пункт усугубляется тем, что Google искусственно фильтрует доступность определенных программ для определенных групп пользователей (по географическому признаку или иному), так что качественные, платные программы зачастую недоступны.
    • Фильтрация производится и по другим признакам, например по типу устройства, с которого производится доступ, иными словами, Маркет с ног сбивается, чтобы быть умнее, чем пользователь (что, как известно, у компьютерных программ получается плохо)
    • Маркет не предоставляет достаточных возможностей поиска и категоризации, например, невозможности найти ПО, предлагаемой на условиях определенной лицензии.


    Опять Open Source?


    Существует несколько (множество?) проектов, призванных решить некоторые из проблем выше, но F-Droid призван решить их коренным образом, а именно передать контроль как над самим репозиторием, так и над ПО, доступным в нем, в руки самих пользователей (собственно, сообщество таких пользователей, которым важны вопросы выше, проект и представляет). Достигает он этого с помощью лицензий Open Source — как для самого программного обеспечения репозитория и менеджера пактов, так и для ПО, доступного в репозитории.

    Для многих, кто знаком с Open Source понятно, почему это важно, для тех, кто знает больше понаслышке и «интуитивно» («Халява, Сэр!»), хотелось бы пояснить: Open Source это очень хороший способ гарантировать минимально допустимое качество ПО. Под «минимальным качеством» понимается отсутствие вредоносного кода и явных ошибок и недочетов. Это достигается просто — контролем самих пользователей за кодом. Разумеется, для конкретного пользователя такой контроль может быть сложно осуществить, но Open Source полностью основывается на концепции взаимопомогающего сообщества (а не на концепции потребитель/производитель). Именно поэтому в заголовок вынесена фраза «F-Droid — »Маркет" для тех, кто любит слать патчи".

    F-Droid, бородатый робот с пристрастием к FOSS


    Но довольно теории. Проект F-Droid был основан Ciaran Gultnieks в октябре 2010 года, т.е. ему нет и года. Это не слишком большой срок, но проект неплохо развился за это время. Итак, у него есть сайт и форум. Приложения, доступные в репозитории, можно посмотреть через веб-интерфейс. Приложений пока немного по меркам Маркета (набитого мусорной фриварью) и даже типичного Linux-дистрибутива: около ста наименований. С одной стороны это кажется очень малым количеством, но с другой стороны, емкость Open Source Android экосферы и так не велика (в 200-300 более-менее рабочих программ, на мой взгляд). Кроме того, даже 100 приложений вы вряд ли захотите установить одновременно на свое устройство, а несколько полезных программ вы там несомненно найдете.

    Конечно, основная прелесть F-Droid в менеджере пакетов, работающем на устройстве. Его можно скачать с этой страницы (или прямая ссылка, QR-код в начале статьи). Скриншот основного окна показан ниже:

    image


    На трех вкладках представлены: ПО доступное для установки, уже установленное, и апдейты для установленного (кстати, сам менеджер обновляется так же). Поддерживается поиск по наименованию. О заинтересовавшем приложении можно получить более подробную информацию — описание, ссылка на домашнюю страницу, баг-трекер, репозиторий исходного кода, ссылку для donations. наконец, здесь же представлены версии приложения, доступные для установки. И здесь F-Droid имеет особенность, не всегда доступную даже для Linux-дистрибутивов: поддерживаются несколько версий приложения, что по достоинству оценят владельцы недорогих и «стареньких» устройств, вендоры которых отказались выпустить апгрейды для новых версий Android: если новейшая версия программы не работает, вы всегда можете попробовать одну из предыдущих.

    image


    Помимо репозитория и клиента для него, F-Droid еще и система массовой (кросс)компиляции, т.е. большинство пакетов, доступных в репозитории, собраны самими же разработчиками F-Droid из исходного кода.

    Все изобилие функциональности F-Droid доступно в исходном коде в 2 следующих git-репозиториях:



    Дальнейшие планы


    F-Droid многое еще предстоит сделать:

    • Нарастить пользовательскую базу
    • Найти своих постоянных разработчиков и регулярных контрибуторов
    • Добавить пару тысяч приложений в репозиторий (большинство из них еще не написано ;-) )
    • Улучшить интерфейс и возможности, например сейчас идет работа по добавлению поддержки категорий, потому что 100 приложений — это только кажется, что немного ;-)

    Если вам интересно, почаще заходите в гости и присоединяйтесь!

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 40

      +1
      Спасибо, установил, программа интересная. Жаль что нет русского и более группированного списка.
        +1
        so FORK IT!
          +3
          Форкнуть как git-репозиторий — да!, форкнуть как проект — очень не хотелось бы, большинству Android FOSS проектов не хватает критической массы, лучше сложить усилия ;-).
          +1
          По поводу группировки/категоризации — уже есть патчи, в тестировании:

          gitorious.org/f-droid/fdroidclient/merge_requests/5
          gitorious.org/f-droid/fdroidserver/merge_requests/32

          Локализации поддерживается стандартными средствами Android, на данный момент есть поддержка 5 языков, желающие могут сделать и для русского.
          +1
          Вау… Если этот проект доведут до ума, я готов признать Андроид нормальной ОС. (Да! Я — фанатик.)
            +1
            А что мешает сейчас признать?
              +9
              Он — фанатик.
                0
                Суть то в чем?
                Приложения с открытым кодом и свободными лицензиями и без того хорошо публикуются в маркете, а сорцы их так же хорошо лежат на гитхабе. В чем плюс этого «магазина»? В том что там нет выбора?
                  +2
                  Так специально ж 7 пунктов «проблем» с маркетом расписал. Попробуйте к примеру быстро найти FOSS проекты на маркете. Или поставить с маркета на Nook Color, Amazon Fire и сотню китайский моделей, не скатывайся до ковыряния с варезом.
            0
            Тут все как обычно упирается в бабло.
            Разрешат ли в этих прогах использовать сторонние библиотеки для встраивания рекламы?
            Будут ли они пилить свой в сторону коммерциализации или это будет таки чистый энтузиазм?

            Если нет, то боюсь не захотят туда идти товарищи, которые пришли в андроид из апстора — им просто такие принципы чужды.
              +1
              Проект останется на чистом энтузиазме, на том же самом, на котором работает Debian. Есть другие проекты, гнущие в сторону коммерциализации, например Aptoide (Код клиента F-Droid собственно сфоркнулся от него), или тот же SlideME, который уже совсем скоммерциализировался (а ведь есть (забытый open-source клиент)).

              В F-Droid репозиторий могут попасть только open-source проекты (http://opensource.org/), и мейнтейнер проекта довольно ортодоксален по этому поводу, например, код есть, а лицензии нет — не проходит.

              Далее, для все таких ортодксов-purist'ов есть система фильтров «антифич» типа рекламы и отсылки статистики на левые сервера (т.е. проги с такими фичами можно убрать из показа в списке).

              Наконец, стоит не забывать, что лицензия opensource позволяет свободно изменять код, поэтому, если людей будет доставать реклама, они ее выпатчат.

              Поддерживается тогда хоть какая-либо «монетизация» — да, как написано в статье, есть ссылки на donation для приложений, хоть они и недостаточно видны по моему мнению.

              > Если нет, то боюсь не захотят туда идти товарищи, которые пришли в андроид из апстора — им просто такие принципы чужды.

              Никто и не пытается захватить мир, только решить проблемы тех, кому такой проект нужен ;-)
              0
              Я джва года ждала такой маркет =)
                0
                Я как обзавелся Android-девайсом, и посмотрел чуток на Маркет, тоже сразу стал искать такое. И должен сказать, что заняло это достаточно много времени. Вот я точно знал, что кто-то должен был сделать репозиторий свободного софта, но сначала натыкался на 3-4 умерших или полуживых проектов. Поэтому да, publicity не хватает.

                А необходимость такого проекта для меня очевидна — я сам сижу на Windows Mobile в качестве смартфона, потому что привязан там к проприетарному, но качественному софту. Повторять такую историю больше не хочу, поэтому нужен открытый софт для базовых задач, и не только сам софт, но и канал доставки.
                0
                Интересный нюанс заключается в том, что в Android переключатель разрешений на установку приложений может стоять только в двух позициях: «только из Android Market» и «откуда угодно»; никакого, например, «белого списка» доверенных репозиториев там нет, насколько я знаю; так что пользователь репозитория F-Droid, строго говоря, не может им воспользоваться, если не подвергнет себя одновременно опасности установки приложений откуда угодно. Получается примерно то же (мягкое, но непреоборимо мощное) давление, что и в случае с Яндексом.
                  0
                  Ничто не мешает Вам добавить такую фичу в Cyanogen, например.
                    0
                    Да, я думаю, что прежде всего, такой проект, как F-Droid, не хотел бы ограничивать других в установке только из себя.

                    Но вопрос безопасности есть, конечно. Я не знаю, как реализована «разрешить установку из других источников» и насколько глубоко она сидит в системе (например, она могла бы отключать просто ассоциацию с .apk файлами, а могла бы и проверять, что каждый apk подписан предопределенным ключем Google'а).

                    Можно было бы придумать, как то, о чем вы говорите, было бы реализовано (например, включили установку из других мест, установили сторонний менеджер пакетов, у которого есть специальный permission «разрешить установку пакетов», выключили другие места, дальше работает стронний менеджер, который имеет необходимый permission сам). Но работает ли оно так и можно ли заставить — не знаю, и это тема отдельной статьи ;-).
                    0
                    Мой проект попал туда автоматически :) Даже версии как-то обновляются. С одной стороны — это хорошо, а с другой — кнопка donate должна сделана на очень видном месте.
                    Как пользователь я бы хотел:
                    — чтобы приложения добавлялись строго в категории и с очень четким описанием (!), желательно чтобы были возможности оставлять комментарии от пользователей, которые бы описывали, что программа делает (лучше делать только на сайте и исключать дублирующие комментарии).
                    В общем хотелось бы каталог как на 4pda.

                    Как разработчик я бы хотел, установить стоимость донейта и у пользователя была возможность поддержать по средствам (PayPal, ...) и (!) встроенных Google платежей, так как ими пользоваться достаточно удобно. Причем было бы неплохо найти баланс между рекламой, donate, feature donate…
                      0
                      > Даже версии как-то обновляются.

                      Да, как-то ;-). Я бы сказал, что новые проги добавляются не так быстро, как мне хотелось бы, но за обновлениями добавленных мейнтейнер следит вполне неплохо.

                      > кнопка donate должна сделана на очень видном месте.

                      Тут стоит начать с того, что такой практики вообще-то нет среди opensource менеджеров пакетов. Вы видели, чтобы dpkg в конце установки выдавал такую просьбу? Или Ubuntu Software Center? Или сам Android начинал работы с просьбы заслать несколько баксов хотя бы в парочку из пары сотен opensource проектов, на которых он основан? Поэтому, то что уже есть — это уже добрая воля автора F-Droid.

                      Но лично я согласен, что если уж такая функция есть, то можно было бы ее сделать более видимой, но тут все упирается в убогость интерфейса Android'а, сделанного в стиле Palm Pilot'а 20-летний давности. Пункт меню есть, а догадаться об этом пользователю сложно.

                      По поводу четких описаний — согласен, что надо улучшать то, что есть, а вот «очень четкость» у каждого своя ;-).

                      Коментарии к софту — я бы тоже хотел, но еще больше я хочу хотя бы пару-тройку сотен наименований сначала, в это направлении и собираюсь работать.
                        0
                        Дело в том, что opensource не означает бесплатный, а бесплатное не означает opensource :) В том плане, что opensource означает открытые исходные коды, но их можно продавать, даже не тот, кто делал. Суть в том, что если за opensource никто не будет платить, то и развиваться он будет соответствующе. В конце концов люди платят деньги за закрытые программы, которые обогащяют конкретную компанию, и не платят за opensource, который по сути обогащает общество.

                        ИМХО, по мне установка бесплатной программы, должна быть более трудоемким занятием, чем установка платной (с небольшим донейтом). Реклама — штука вообще плохая :)
                          0
                          > opensource означает открытые исходные коды, но их можно продавать, даже не тот, кто делал

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

                          Поскольку мы оба это понимаем, можно идти дальше. Вы конечно правы, что любая работа требует ресурсов (в т.ч. материальных) и заслуживает компенсации, в т.ч. и OpenSource. Ну так для начала не надо пенять, что кто-то должен сделать где-то большую кнопку, прежде всего сделайте то, что в ваших силах — красивый About диалог, с красивой иконкой и ссылкой. А то давеча сабмиттал баг в один очень интересный проект, и получил ответ, что нет, и не будет. Вот такие они, open-source разработчики. Как будто это я буду в резюме вписывать, что я автор популярной open-source программы, а на интервью начальник полезен в свой телефон и скажет «Чуваг, ти крут!» (нематериальный актив, ага).

                          > ИМХО, по мне установка бесплатной программы, должна быть более трудоемким занятием, чем установка платной (с небольшим донейтом). Реклама — штука вообще плохая :)

                          Да буде вам! И одновременно — вы правы, только не в ту сторону. Такие проекты, как F-Droid, всегда останутся нишевыми, в духе «телефоны для тех, кто понял». Куда ему тягаться с Маркетом, в рекламу которого вкладываются огромные деньги. Простые пользователи любят его, простые пользователи хотят его (это видно даже по комментариям под этой статьей, а уж в других местах и подавно). Ну а дальше, если какой-то автор софта, пусть даже FOSS, решает, что раз простые люди так любят маркет, то пусть любят его не только всей душой, но и мелочью своего кошелька — кто им в таком случае судья, этим авторам? Не я.

                          Вон, Gina Trapani, не последний человек в тусовке, не гнушается облегчить простым пользователям возможность сделать донацию. Ведь посудите сами, сделать донацию после установки программы несколько обременительно — надо не забыть это сделать вообще, раскопать ссылку и т.п. Так почему бы не помочь пользователю и не дать возможность сделать ее до установки? Это особенно хорошо работает, если у вашей программы сотни пользователей и зведы 4 в Маркете.

                          Авторам в такой ситуации хочется только посоветовать крепить силу духа и не поддаваться на мелочные искушения (тренинг вашего духа за чужие деньги, хоть и малые — тоже дополнительный неплохой бонус, согласитесь). Но если не получится, то Господа Бога вы этим не удивите, он всех нас как облупленных знает ;-). Куча народу используют опен-сырцовость в качестве вирусного маркетинга, а когда звездочки, хоть и не на погонах, появились, на открытый репозиторий забивается, а в маркете версии так и щелкают.
                            +1
                            Согласен, что open source не должен создаваться с целью заработать денег. Он должен создаваться для того, чтобы решать определенную задачу при этом оставаясь open source (то есть имеется возможность изучить код, улучшить и использовать бесплатно). Проблемы возникают чуть позже, когда проект вроде бы справляется с основной задачей (всегда есть куда развиваться), но появляются дополнительные задачи, с точки зрения разработчика, никогда не являвшиеся основными, но действительность такова, что люди хотят их видеть.

                            Тут я бы конечно хотел особенно отметить сложность самого продукта, если это обычное приложение для заказа чего-то из меню, то ценность самого приложения невысока, возможно делать его opensource не является такой уже необходимостью, а тем более брать за это деньги. С другой стороны некоторые проекты просто не могут развиваться без поддержки Android, Eclipse, VirtualBox, Ubuntu,… Ну а мобильные приложения на сегодняшний день могут черпать поддержку только из Маркетов :)

                            На счет бага, не думайте, проект молодой если будет развиваться, то сделают и его. В самом начале проекта важно добраться до нужной цели, а не растрачиваться на about и т.п., дорастут, если конечно будут развиваться.
                              0
                              А это мысль — предлагать в донации проголосовать за новую фишку. И когда делаешь обновление, смотреть что людям нужно. Правда на собственном-же опыте могу сказать, что иногда делать что хотят люди скучно или не вяжется в основную концепцию или вообще невозможно. Говорю как автор нескольких GPL2 програмок под андроид, одну из которых нашел в этом маркете. Моё требование к сторонним маркетам — лишь бы не напрягали и не заставляли самому везде обновлять.
                                0
                                Я думаю этот подход очень хорош в некоторых случаях. Подумываю как прикрутить BidForFix, только думаю надо к этому делу сделать очень удобную систему оплаты. В принципе можем вместе, что сообразить, создать проект для Android и с контактировать с автором BidForFix.

                                Плюс использования donate per feature в том, что фичи, которые трудно реализируемы и не вписываются в концепцию, автоматически приоритезируются. И точка зрения разработчика может сильно поменяться, когда сумма будет приемлимой :)
                                  0
                                  Мне кажется это надо делать через in-app-payment в Market как вариант Donation, хотя я не спец в этом деле. Я делать точно не буду, есть много других дел.
                                  0
                                  Господа, ну не стесняйтесь, расскажите, какая это прога, я знаю конечно, что «наши» люди пишут OpenSource под Андроид, но не думал, что так вот прямо двое скажут «и моя там». Соотношение ясно улучшилось со времен PocketPC/WindowsMobile, когда народ писал freeware, который жил от силы год и помирал, никому не принеся пользы.

                                  > Моё требование к сторонним маркетам — лишь бы не напрягали и не заставляли самому везде обновлять.

                                  Тут таже идея, что в Debian — дистра сама решает, что включать в репозиторий и занимается этим, но сотрудничество с авторами в деле включения/обновления приветствуется.
                                    +1
                                    DiskUsage. Как правило, пост с названием своего проекта здесь на хабре считают рекламой.

                                    Обновление в большинстве маркетов или ручное, или автоматическое копирование из основного. Я пробовал обновлять в ручную и понял что не потяну. 4 программы * 10 маркетов = 40 обновлений на каждый багфикс. Если бы делал бы за деньги, то может быть был бы стимул, а так — нет.
                              0
                              Ну вот, почитал ваши статьи — все дороги ведут в Рим ;-). За OsmAnd спасибо, за то, что нашли способ мотивироваться при его написании — тоже. Вот навигация для меня самая проблемная область в Android — ну нет достойной замены для OziExplorer, или я пока не разобрался с тем, что есть на Android.
                                0
                                :) Пишу о том, что близко. Расскажите чего не хватает в Android навигации? Всегда интересно узнать.

                                Парадокс знаете в чем? Донейтов за приложение дадут тогда больше, когда она будет практически готово. А для того, чтобы сделать его готовым, может понадобиться очень много усилий, которые изначально были не нужны. Так что своего рода опять бизнес. Люди рассматривают донейты, больше как цену за продукт, нежели как инвестиции в opensource.
                                  0
                                  > :) Пишу о том, что близко. Расскажите чего не хватает в Android навигации? Всегда интересно узнать.

                                  Вот погоняю OsmAnd побольше, напишу у вас в статье ;-).

                                  > Парадокс знаете в чем?… Так что своего рода опять бизнес.

                                  Именно. Поэтому да, если вопрос ставится так, что вы хотите и интересным делом заниматься (картография), и так, как хотите (OpenSource), и мотивацию/компенсацию/самофинансирование хотите, то это вполне бизнес, как о нем мечтают многие, если и не в том масштабе. Но тренировка хорошая, после этого можно и коммерческие стартапы открывать и в гуглы идти сдаваться. Так что рад, что вам удалось это совместить с OpenSource!
                          0
                          поставил, работает стабильно, одна проблема в закладке Installed почему то нашла из 200 приложений на телефоне, только 3 моих + саму себя :) странно!
                            0
                            Ну так находятся только те программы, что есть в репозитарии f-droid.
                              0
                              ну просто я по аналогии с blackmart подумал что тут все что нашла и версии, а в закладке обновления то, что есть нового из репозитория. Ну ок, сенкс, понял.
                              0
                              Да, в Installed показывается не все установленные программы на девайсе, а установленные из репозитория.
                              0
                              Очень годно! Будем пробовать. Спасибо за статью!
                                0
                                Дааа!!! Я ждал в точности этого, уже поставил! Желаю удачи проекту! :)

                                Единственный вопрос «с ходу» — запустил, оно нашло обновление Cool Reader, но говорит, что типа новая версия подписана не тем же ключом, что установленная, поэтому просто обновить нельзя — это ограничение системы, или это f-droid придумал? :)
                                  +1
                                  Дело в том, что F-Droid, как настоящий Linux репозитарий, компилирует большинство программ из исходников, и подписывает .apk своим ключом (не ключом автора). А далее да, вступает в силу стандартный security check от Android — что автоматический апгрейд возможен только если новый пакет подписан тем же ключем, что и оригинал.

                                  Разумеется, это базовый и важный security check. Представьте, что вы поставили какую-то прожку, дай бог, из надежного источника. Начали вписывать в эту прожку контакты, явки, счета в банке и т.п. А потом раз, где-то на софто-мусорке нашли якобы версию 2.0, куча новых фич, блек-джек и все такое. Ставите, а андроид предупреждает, что новый пакет подписан не оригинальным автором, а значит может оказаться всем, чем угодно — например трояном, который ваши данные сворует и разошлет в интернеты. Поэтому в таком случае Android требует ручного удаления старого пакета (еще раз подумайте о своих данных) прежде чем установить новый.

                                  Вся эта security система работает вполне неплохо, если начальная версия установлена из правильного места. Так что если вы доверяете F-Droid (можете проверять и/или перекомпилировать все пакеты сами), то смело переставляйтесь, и дальше уже апгрейдтесь из него.
                                    0
                                    Спасибо, всё понял!
                                  0
                                  >Последний пункт усугубляется тем, что Google искусственно фильтрует доступность определенных программ для определенных групп пользователей (по географическому признаку или иному), так что качественные, платные программы зачастую недоступны.

                                  ну а тут-то чем поможет F-Droid?
                                    0
                                    Как чем — делайте сами свое качественное ПО. Не зависьте от 3-их лиц, которые смотрят на вас свысока и решают, что вам дать, что нет. Зависьте только от «2-х лиц», с которыми вы на равных, которые дают вам те же самые права, что имеют сами.
                                      0
                                      вы забываете про то, что
                                      1) речь идёт от _платных_ программах
                                      2) ограничение по стране оно не просто так
                                      3) зачастую самые «ограничиваемые» приложение — от самого гугла (music, например)

                                  Only users with full accounts can post comments. Log in, please.