Реализация сервисов Google Play с открытым исходным кодом

Google Play Services — это библиотека для Android, которая предлагает различные возможности, например, для геолокации .

В то время как Android является открытым исходным кодом, сервисы Google Play являются проприетарными .
Многие разработчики игнорируют эту разницу и связывают свои приложения с сервисами Google Play, что делает их непригодными для использования на устройствах со 100% открытым исходным кодом. Такие приложения часто не устанавливаются или принудительно закрываются при попытке доступа к сервисам Google Play.

Существует ли реализация сервисов Google Play с открытым исходным кодом?
Или, по крайней мере, имитация/заглушка, которая делает вид, что сервисы Google Play присутствуют?

Не имея никакого опыта с этим, я не могу сделать это ответом; но вы, скорее всего, ищете NOGAPPS . Все еще в разработке, еще не все части готовы, но выглядит многообещающе.
Такого может и не быть. См. эту статью , в которой исследуется ситуация прошлой осенью.
Сервисы Google Play — это то, что позволяет вашему телефону работать. Я помню, как недавно читал, что все веб-приложения требуют для работы сервисов Google Play. Google по-прежнему хочет получить часть нестандартной ОС Android. И в статье действительно говорилось о том, что Google использует Play Services, чтобы снова получить немного больше контроля над Android. Да, Android бесплатен и имеет открытый исходный код, но Google по-прежнему нуждается в сервисах Google Play, помимо опыта. Я нашел статью, которую снова нашел на ArsTechnica.
@Traven: « для работы всех веб-приложений требуются сервисы Google Play » ← Это неправильно. Устройства без Play Services могут использовать веб-приложения, а также большинство собственных приложений.

Ответы (2)

µg Project (блестяще описано Иззи на его сайте)

MaR-V-iN начал разработку того, что он назвал пакетом NOGAPPS — набором приложений и фреймворков с целью заполнить пробел в отсутствующем пакете gapps. Этот проект в настоящее время продолжается под названием µg Project.

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

В настоящее время это в основном два компонента, оба из которых называются Play Services:

  • клиентская библиотека play-services, внедряемая в приложения их разработчиками и GmsCore ,

  • сервисный компонент, используемый этой библиотекой. Сервисы Play включают более или менее все новые проприетарные функции Android.

Эти компоненты также можно разделить на 3 части:

  1. GmsCore более-менее соответствует Google Services

  2. GsfProxy дополняет ядро ​​Google Cloud Messaging для других приложений.

  3. FakeStore или, в качестве альтернативы, Blank Store или даже родной Playstore.

Геолокация

В настоящее время в Android есть два API для геолокации. Один из них — это API Location с открытым исходным кодом, реализованный UnifiedNlp , другой — проприетарный API Location Play Services.

Сам по себе UnifiedNlp не предоставляет никаких функций, но выступает в качестве промежуточного программного обеспечения для нескольких серверных частей. Все их можно загрузить и обновить с помощью F-Droid.

.

Вот список доступных бэкендов для геолокации и (обратного) геокодирования:

  • AppleWifiNlpBackend — серверная часть, использующая службу Apple для определения местоположений Wi-Fi.

  • OpenWlanMapNlpBackend — серверная часть, использующая OpenWlanMap.org для определения местоположения пользователя.

  • OpenBmapNlpBackend — серверная часть, использующая openBmap для определения местоположения пользователя.

  • MozillaNlpBackend — серверная часть, использующая службу определения местоположения Mozilla для определения местоположения пользователя.

  • PersonalWifiBackend — локальный провайдер определения местоположения для точек доступа WiFi, использующий базу данных, сгенерированную на телефоне. LocalGSMLocationProvider — серверная часть локального провайдера определения местоположения на основе opencellid.

  • LocalGSMBackend - Локальный провайдер местоположения для сот GSM с отдельным файлом базы данных (lacells.db)
  • NominatimGeocoderBackend

Инструкции по установке :

https://github.com/microg/android_packages_apps_UnifiedNlp/blob/master/README.md Специальная ветка XDA: http://forum.xda-developers.com/android/apps-games/app-g-unifiednlp-floss-wi -fi-cell-tower-t2991544

Использование приложений, требующих API-интерфейсов Play Services

Вот небольшой список вещей, с которыми вы можете столкнуться, если у вас нет сервисов Google Play:

  • Некоторые приложения не устанавливаются из-за отсутствия Google Maps API.

  • Некоторые приложения fc (принудительно закрываются) при запуске из-за отсутствия Maps API или проблем с проверкой лицензии Play.

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

А вот и мкг GmsCore. Это приложение обеспечивает реализацию некоторых сервисов Play.

В настоящее время основной разработчик сосредотачивает свою разработку только на тех частях игровых сервисов, которые часто используются:

  • LoginService : позволяет вам войти в учетную запись Google (OAuth)

  • Google Cloud Messaging: GCM (который заменяет C2DM) — это служба push-уведомлений, которая работает в фоновом режиме на вашем телефоне. Он прослушивает сообщения, хранящиеся приложениями, использующими его, на серверах Google GCM (дополняется GsfProxy )

Чтобы это работало, ваше устройство должно быть зарегистрировано, чтобы приложения могли знать, для какой учетной записи Google они должны отправлять свои сообщения.

API местоположения сервисов Play

Maps API (v2): переводит вызовы Google Maps API в вызовы OpenScienceMap. Отображает карту благодаря библиотеке, разработанной в рамках проекта OpenScienceMap.

Требования :

Ваше чистое ПЗУ AOSP должно поддерживать подделку подписи пакета µg . Это относится к Omnirom ( https://gerrit.omnirom.org/#/c/8672/ + https://gerrit.omnirom.org/#/c/13136/ ) и скоро появится в Cyanogenmod ( http: //review.cyanogenmod.org/#/c/106162/ ).

  • В качестве альтернативы FakeGApps с модулем Xposed.

  • ПЗУ 4.4+ без GAPPS

Скачать:

Свежие сборки доступны здесь: http://files.brnmod.rocks/apps/GmsCore/Latest/ . Получите play-services-core-debug.apk и здесь: https://github.com/microg

F-Droid: теперь доступен : репозиторий microG F-Droid ( https://microg.org/download.html )

Применение:

Это приложение создает поставщика учетных записей с именем Google. Вы можете настроить его с помощью учетной записи Google. После входа в систему µg GmsCore переходит к проверке устройства, если вы не отключили ее. Он создает уникальный идентификатор для служб Google и удаляет из этих данных идентифицирующие биты, кроме имени вашей учетной записи Google. По некоторым причинам может случиться так, что срок действия регистрации истечет. Вот несколько независимых трюков, которые вы можете использовать для принудительной проверки новых устройств: Составление *#*#2432546#*#*(что означает # #CHECKIN# # ) Если вы не хотите набирать номер или не можете, потому что на вашем устройстве нет номеронабирателя, используйте оболочку ADB. как root и введите это:

# am broadcast -a android.provider.Telephony.SECRET_CODE -d android_secret_code://2432546

Или... вы можете просто убить/перезапустить процесс µg GmsCore. Монитор ОС может помочь вам в этом.

Получение приложений из «Play Store»

Существует множество решений для получения приложений (APK) без установки Google Play Store. Однако большинство из них полагаются на альтернативные рынки, или вам нужно получить APK-файлы из программы, установленной на вашем компьютере. Даже родной плеймаркет до сих пор работает (пользуюсь без проблем) как вариант есть блэкстор.

Код: https://github.com/mar-v-in/BlankStore

Сборки: https://github.com/mar-v-in/BlankStore/releases

Инструкции: http://forum.xda-developers.com/showpost.php?p=29115263&postcount=84

Blankstore должен быть установлен как системное приложение.

Примечания:

Как предположил Иззи в комментариях, это один из самых простых способов реализовать сервисы Google Play с открытым исходным кодом, и он работает безупречно.

Я хотел бы выразить искреннюю благодарность Иззи за то, что он позволил мне включить эту обновленную информацию об этом новом проекте, перенесенном из NoGApps, и со ссылкой на его материал.

использованная литература

  1. Android без Google: microG
  2. Использование Android без Google Apps
Хороший итог, Ксавьер! Тем не менее, несколько предложений: 1) это не OpenStreetMap? Я никогда не слышал об OpenScienceMap :) 2) µG имеет свой собственный репозиторий F-Droid , который можно использовать (это то, что я делаю). // Спасибо за кредиты и ссылки :)
@Izzy Я пересмотрел статью, да, есть проект Open Science, и я включил ссылку
Спасибо за обновление! И я исправляюсь в отношении OpenScienceMap. Всегда думал, что µG использует OpenStreetMap, но, похоже, вы правы (как подтверждает быстрая проверка).
@Izzy, но я также считаю, что есть какая-то реализация openstreet, или, может быть, я путаю с opencellid. Но спасибо эй!
NOGAPPS использовал OpenStreetMap. Похоже, Марвин переключился на OpenScienceMap. И OpenCellId используется бэкендами UnifiedNlp GSM :)
VLC написала замену Chromecast с открытым исходным кодом, а также geoffreymetais.github.io/features/vlc-30/…

В соответствии с явным запросом ОП, вот мой ответ - с ограничением отсутствующего опыта.

Отказ от ответственности впереди:

У меня нет личного опыта в следующем. Это просто какое-то время в моем списке «что попробовать», поэтому я проверил только детали.

Ответ:

NOGAPPS , судя по описанию, именно то, что вам нужно. Проект направлен на предоставление Android API с точно таким же интерфейсом, как и у Google Services Framework (GSF), с той разницей, что они используют другие сервисы в качестве серверных частей. Эти сервисы действительно являются открытым исходным кодом, а не проприетарными, поэтому код можно свободно исследовать и установить уровень доверия.

Части проекта:

  • Расположение в сети:
    лицензия Apache. Использует локальную базу данных (хранящуюся на SDCard) или базу данных Apple. Я думал, что вспомнил кое-что об использовании OpenCellID здесь, но, по крайней мере, в связанной статье XDA об этом не говорится. Состояние: выпуск (т.е. стабильный)
  • API Карт v1:
    LGPL. Использует OpenStreetMap в качестве серверной части. Состояние: Бета
  • BlankStore:
    клиент Google Play Store с открытым исходным кодом. Лицензия Апача. Состояние: снято с производства

Не используется, но в работе:

  • ЛогинСервис. Состояние: разработчик
  • Платформа услуг. Состояние: разработчик
  • API Карт v2. Состояние: неизвестно.

Несмотря на использование других серверных частей, NOGAPPS представляет тот же интерфейс. Таким образом, приложения, использующие для работы какой-либо проприетарный код Google, должны не замечать этого, а прозрачно использовать предлагаемые подвески с открытым исходным кодом. Конечно, только когда он доступен (например, LoginService все еще недоступен, поэтому он не может работать). Я понятия не имею, существуют ли «фиктивные интерфейсы» для еще не завершенных вещей (чтобы заставить приложения думать, например, что LoginService есть, но в настоящее время нет доступа к серверу — поэтому они не падают, а просто не имеют соответствующего функциональность).

Для меня это звучит как блестящая вещь. И если бы я знал немного раньше (до того, как перепрошил свое последнее устройство), я бы попробовал это вместо GApps :)

Для получения дополнительной информации, сведений о текущей разработке и т. д. см. связанную страницу XDA проекта NOGAPPS .

NOGAPPS: помогите разработать замену с открытым исходным кодом для сервисов Google Play.

PS: Вы также можете увидеть Android без Google 5: Free your Droid! , я начал использовать его :)
Кажется, NOGAPPS превратился в microG: microg.org
@TinMan Не только кажется, но и является фактом. Переключение произошло более года назад, но только после того, как я опубликовал этот ответ :) Теперь вы также можете найти его на Github.
@Izzy, отличный ответ, ничего, если я сделаю ссылку на microG, в настоящее время я использую его, и все работает нормально, включая родной магазин игр, только небольшие проблемы с геолокацией, которая иногда не точна?
@xavier_fakerat µG является преемником проекта NOGAPPS. Обратите внимание, что этот ответ здесь от 2014 года, когда µG еще не существовало :) И, конечно, его намного проще установить :) Подробнее я написал статью некоторое время назад, на которую вы, возможно, захотите сослаться.