Implementación de código abierto de Google Play Services

Google Play Services es una biblioteca para Android que ofrece varias ventajas, por ejemplo, para la geolocalización .

Si bien Android es de código abierto, Google Play Services es propietario .
Muchos desarrolladores ignoran esta diferencia y vinculan sus aplicaciones a Google Play Services, lo que las hace inutilizables en dispositivos que son 100 % de código abierto. Estas aplicaciones a menudo no se instalan o se cierran a la fuerza cuando intentan acceder a Google Play Services.

¿Existe alguna implementación de código abierto de Google Play Services?
¿O al menos un simulacro/stub que finge que Google Play Services está presente?

Al no tener ninguna experiencia con eso, no puedo convertirlo en una respuesta; pero lo más probable es que esté buscando NOGAPPS . Todavía en desarrollo, no todas las partes están listas todavía, pero parece prometedor.
Tal cosa puede no existir. Vea este artículo que explora la situación a partir del otoño pasado.
Google Play Services es lo que permite que su teléfono funcione. Recuerdo haber leído recientemente que todas las aplicaciones web requieren Google Play Services para funcionar ahora. Google todavía quiere una parte de los sistemas operativos Android que no están en stock. Y el artículo habló sobre Google usando los Servicios de Play para tomar un poco más de control de Android nuevamente. Sí, Android es gratuito y de código abierto, pero Google aún necesita los servicios de Google Play aparte de la experiencia. Encontré el artículo que encontré nuevamente en ArsTechnica
@Traven: " todas las aplicaciones web requieren Google Play Services para funcionar " ← Eso está mal. Los dispositivos sin Play Services pueden usar aplicaciones web y también la mayoría de las aplicaciones nativas.

Respuestas (2)

Proyecto µg (brillantemente descrito por Izzy en su sitio web)

MaR-V-iN comenzó a desarrollar lo que llamó el paquete NOGAPPS: un conjunto de aplicaciones y marcos con el objetivo de llenar el vacío del paquete gapps faltante. Este proyecto ahora continúa bajo el nombre de µg Project.

La idea principal de este proyecto era construir un reemplazo gratuito para todas las partes propietarias de Google inyectadas en el ecosistema de Android.

Estos son principalmente dos componentes en estos días, ambos llamados Play Services:

  • los servicios de reproducción de la biblioteca del cliente, que sus desarrolladores y GmsCore inyectan en las aplicaciones ,

  • el componente de servicio utilizado por esta biblioteca. Los servicios de reproducción incluyen más o menos todas las funciones patentadas de Android más nuevas.

Estos componentes también se resumen en 3 partes como:

  1. GmsCore corresponde más o menos a los Servicios de Google

  2. GsfProxy complementa el núcleo con Google Cloud Messaging para otras aplicaciones

  3. FakeStore o alternativamente Blank Store o incluso Playstore nativo

Geolocalización

Actualmente, Android tiene dos API para geolocalizar. Una de ellas es la API de ubicación de código abierto implementada por UnifiedNlp , la otra es la API de ubicación de Play Services patentada.

UnifiedNlp por sí solo no proporciona ninguna función, pero actúa como un software intermedio para múltiples backends. Todos ellos se pueden descargar y actualizar usando F-Droid

.

Aquí hay una lista de backends para geolocalización y geocodificación (inversa) disponibles:

  • AppleWifiNlpBackend: backend que utiliza el servicio de Apple para resolver ubicaciones wifi.

  • OpenWlanMapNlpBackend: backend que usa OpenWlanMap.org para resolver la ubicación del usuario.

  • OpenBmapNlpBackend: backend que usa openBmap para resolver la ubicación del usuario.

  • MozillaNlpBackend: backend que utiliza el servicio de ubicación de Mozilla para resolver la ubicación del usuario.

  • PersonalWifiBackend: proveedor de ubicación local para puntos de acceso WiFi que utilizan una base de datos generada en el teléfono. LocalGSMLocationProvider: servidor de proveedor de ubicación local basado en opencellid

  • LocalGSMBackend: proveedor de ubicación local para celdas gsm con un archivo de base de datos independiente (lacells.db)
  • NominatimGeocoderBackend

Instrucciones de instalación :

https://github.com/microg/android_packages_apps_UnifiedNlp/blob/master/README.md Subproceso XDA dedicado: http://forum.xda-developers.com/android/apps-games/app-g-unifiednlp-floss-wi -fi-cell-tower-t2991544

Uso de aplicaciones que requieren API de 'Servicios de juego'

Aquí hay una pequeña lista de cosas que puede encontrar cuando no tiene los servicios de Google Play:

  • Algunas aplicaciones no se instalan porque falta la API de Google Maps.

  • Algunas aplicaciones fc (cierre forzado) en el inicio debido a problemas de verificación de licencia de Play o API de Maps faltantes.

  • Algunas aplicaciones tienen enlaces codificados a varias aplicaciones de Google y, por lo tanto, fuerzan el cierre o reaccionan inesperadamente en ciertos casos.

Aquí viene µg GmsCore. Esta aplicación proporciona una implementación de algunos servicios de juego.

Actualmente, el desarrollador principal enfoca su desarrollo solo en las partes de los servicios de juego que se usan mucho:

  • LoginService: le permite iniciar sesión en una cuenta de Google (OAuth)

  • Google Cloud Messaging: GCM (que reemplaza a C2DM) es un servicio de notificación automática que se ejecuta en segundo plano en su teléfono. Escucha los mensajes, almacenados por las aplicaciones que lo utilizan, en los servidores GCM de Google (complementado por GsfProxy )

Para que esto funcione, su dispositivo debe estar registrado para que las aplicaciones puedan saber a qué cuenta de Google deben enviar sus mensajes.

API de ubicación de servicios de reproducción

API de mapas (v2): convierte las llamadas a la API de Google Maps en llamadas a OpenScienceMap. Muestra un mapa gracias a una librería desarrollada dentro del proyecto OpenScienceMap.

Requisitos :

Su ROM AOSP pura debe ser compatible con la falsificación de firmas de paquetes µg . Es el caso de Omnirom ( https://gerrit.omnirom.org/#/c/8672/ + https://gerrit.omnirom.org/#/c/13136/ ) y próximamente en Cyanogenmod ( http: //review.cyanogenmod.org/#/c/106162/ ).

  • Alternativamente FakeGApps con módulo Xposed.

  • 4.4+ ROM sin GAPPS

Descargar:

Las compilaciones nuevas están disponibles aquí: http://files.brnmod.rocks/apps/GmsCore/Latest/ . Obtenga play-services-core-debug.apk y aquí: https://github.com/microg

F-Droid: ahora disponible : repositorio microG F-Droid ( https://microg.org/download.html )

Uso:

Esta aplicación crea un proveedor de cuentas llamado Google. Puedes configurarlo con una cuenta de Google. Una vez que haya iniciado sesión, µg GmsCore procede al registro del dispositivo, a menos que lo deshabilite. Crea un identificador único para los servicios de Google y elimina bits de identificación que no sean el nombre de su cuenta de Google de estos datos. Por alguna razón, puede suceder que el registro caduque. Aquí hay algunos trucos independientes que puede usar para forzar el registro de nuevos dispositivos: Redactar *#*#2432546#*#*(que significa # #CHECKIN# # ) Si no quiere marcar o no puede porque no hay un marcador en su dispositivo, use un shell ADB como root y escriba esto:

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

O... puede matar/reiniciar el proceso de µg GmsCore. OS Monitor puede ayudarlo a hacerlo.

Obtener aplicaciones de 'Play Store'

Hay muchas soluciones para conseguir aplicaciones (APK) sin tener instalado Google Play Store. Sin embargo, la mayoría de ellos dependen de mercados alternativos, o debe obtener APK de un programa instalado en su computadora. Incluso el Playstore nativo todavía funciona (lo uso sin problemas) alternativamente hay un almacén en blanco.

Código: https://github.com/mar-v-in/BlankStore

Compilaciones: https://github.com/mar-v-in/BlankStore/releases

Instrucciones: http://forum.xda-developers.com/showpost.php?p=29115263&postcount=84

Blankstore debe instalarse como una aplicación del sistema.

Observaciones:

Como sugirió Izzy en los comentarios, esta es una de las formas más fáciles de implementar los servicios de código abierto de Google Play y funciona a la perfección.

Me gustaría expresar mi más sincero agradecimiento a Izzy por permitirme incluir esta información actualizada sobre este nuevo proyecto transferido de NoGApps y hacer referencia a su material.

Referencias

  1. Android sin Google: microG
  2. Uso de Android sin Google Apps
¡Buen resumen, Xavier! Sin embargo, algunas sugerencias: 1) ¿no es OpenStreetMap? Nunca he oído hablar de OpenScienceMap :) 2) µG tiene su propio F-Droid Repo que se puede usar (esto es lo que hago). // Gracias por los créditos y referencias :)
@Izzy He revisado el artículo, sí, hay un proyecto de Ciencia Abierta e incluí el enlace
¡Gracias por la actualización! Y estoy corregido con respecto a OpenScienceMap. Siempre pensé que µG usa OpenStreetMap, pero parece que tiene razón (como lo confirma una verificación rápida).
@Izzy, pero también creo que hay alguna implementación de OpenStreet o tal vez me estoy confundiendo con Opencellid. Pero gracias oye!
NOGAPPS estaba usando OpenStreetMap. Parece que Marvin cambió a OpenScienceMap. Y OpenCellId es utilizado por los backends de UnifiedNlp GSM :)
VLC escribió una biblioteca Chromecast de reemplazo de código abierto también geoffreymetais.github.io/features/vlc-30/…

Como lo solicitó explícitamente el OP, aquí viene mi respuesta, con la restricción de la experiencia faltante.

Descargo de responsabilidad por delante:

No tengo experiencia personal con lo siguiente. Solo está en mi lista de "cosas para probar" por un tiempo, así que solo verifiqué los detalles.

La respuesta:

NOGAPPS es, según su descripción, exactamente lo que estás buscando. El proyecto tiene como objetivo proporcionar una API de Android con exactamente la misma interfaz que proporciona Google Services Framework (GSF), con la diferencia de que utilizan otros servicios como backends. Estos servicios son realmente de código abierto, no propietarios y, por lo tanto, el código se puede investigar libremente y se puede establecer un nivel de confianza.

Partes del proyecto:

  • Ubicación de red:
    licencia Apache. Utiliza una base de datos local (almacenada en una tarjeta SD) o la base de datos de Apple. Pensé que recordaba algo sobre el uso de OpenCellID aquí, pero al menos el artículo vinculado de XDA no lo dice. Estado: Lanzamiento (es decir, estable)
  • API de mapas v1:
    LGPL. Utiliza OpenStreetMap como backend. Estado: Beta
  • BlankStore:
    un cliente de Google Play Store de código abierto. Licencia Apache. Estado: Descatalogado

No utilizable, pero en proceso:

  • Servicio de inicio de sesión. Estado: desarrollador
  • Marco de Servicios. Estado: desarrollador
  • API de mapas v2. Estado: desconocido.

Aunque usa otros backends, NOGAPPS presenta la misma interfaz. Por lo tanto, las aplicaciones que dependen de algún código patentado de Google para funcionar no deberían notarlo, pero utilizan de forma transparente los colgantes de código abierto que se ofrecen. Por supuesto, solo cuando esté disponible (por ejemplo, LoginService aún no está disponible, por lo que no puede funcionar). No tengo idea de si hay "interfaces ficticias" para cosas que aún no se han completado (para que las aplicaciones piensen, por ejemplo, que el servicio de inicio de sesión está ahí, pero actualmente no se puede acceder a ningún servidor, por lo que no fallan sino que simplemente carecen del correspondiente funcionalidad).

Para mí, eso suena como algo brillante. Y si lo hubiera sabido un poco antes (antes de volver a flashear mi último dispositivo), lo había intentado en lugar de las GApps :)

Para obtener más información, detalles sobre el desarrollo en curso, etc., consulte la página XDA vinculada del proyecto NOGAPPS .

NOGAPPS: ayude a desarrollar un reemplazo de código abierto para Google Play Services

PD: Es posible que también desee ver Android sin Google 5: ¡Libere su Droid! , he empezado a usarlo :)
Parece que NOGAPPS se ha convertido en microG: microg.org
@TinMan No solo parece, sino que es un hecho. El cambio tuvo lugar hace más de un año, pero solo después de que publiqué esta respuesta :) Ahora también puedes encontrarla en Github.
@Izzy gran respuesta, ¿está bien si hago una referencia a microG, actualmente lo estoy usando y todo funciona bien, incluida la tienda de juegos nativa, solo algunos problemas con la geolocalización que a veces no es precisa?
@xavier_fakerat µG es el sucesor del proyecto NOGAPPS. Tenga en cuenta que esta respuesta aquí es de 2014, donde µG aún no existía :) Y es mucho más fácil de instalar, por supuesto :) Para más detalles, escribí un artículo hace un tiempo que quizás desee consultar.