microG – wolne i otwartoźródłowe oprogramowanie (zestaw komponentów) stanowiące alternatywną implementację wybranych funkcji oferowanych przez własnościowe usługi Google dla Androida, w szczególności Google Play Services. Celem projektu jest umożliwienie uruchamiania aplikacji odwołujących się do wybranych, własnościowych interfejsów Google na systemach opartych na AOSP bez instalowania pełnego pakietu aplikacji Google (tzw. „GApps”).

Historia Projekt microG wyrósł z wcześniejszej inicjatywy NOGAPPS rozpoczętej w 2012 roku, początkowo skoncentrowanej m.in. na funkcjach map i lokalizacji sieciowej, a następnie rozszerzanej o kolejne API kojarzone z usługami Google w Androidzie.

Skład i komponenty W praktyce microG jest zestawem kilku współdziałających elementów, z których najważniejsze to: microG Services (GmsCore) – główny komponent implementujący wybrane funkcje Google Play Services, przeznaczony do działania w systemach opartych na AOSP. GsfProxy – warstwa zgodności dla części starszych bibliotek klienckich, przekierowująca wybrane żądania do GmsCore (m.in. w kontekście historycznego C2DM/GCM). FakeStore (określane także jako „microG Companion”) – „pusty” pakiet, którego zadaniem jest symulowanie obecności Sklepu Google Play wobec aplikacji sprawdzających jego instalację. UnifiedNlp – alternatywny dostawca lokalizacji sieciowej z interfejsem wtyczek dla zewnętrznych „backendów” lokalizacyjnych (w projekcie microG rozwijany jako osobny komponent, a w niektórych konfiguracjach integrowany również w GmsCore). Maps API (v1) – biblioteka systemowa zapewniająca funkcje zbliżone do historycznego (wycofanego) Google Maps API v1.

Zasada działania Aplikacje korzystające z Google Play Services zwykle oczekują obecności określonego pakietu systemowego oraz „zaufanego” podpisu (powiązanego z kluczami Google). W dokumentacji CalyxOS opisano, że GmsCore działa pod tą samą nazwą pakietu co Google Play Services, a zgodność wobec części aplikacji uzyskuje się dzięki mechanizmowi „signature spoofing”, czyli prezentowaniu aplikacjom „podrobionego” podpisu pakietu jako podpisu Google.

Według dokumentacji projektu microG do typowej instalacji GmsCore wymagane jest środowisko (ROM) obsługujące signature spoofing; część systemów udostępnia tę funkcję wprost, a w innych przypadkach konieczne są poprawki lub moduły dla platform modyfikujących zachowanie systemu.

Dystrybucja i integracja z systemami thumb|Logo projektu LineageOS for microG Projekt udostępnia własne repozytorium dla F-Droida z oficjalnymi binarkami podpisanymi przez zespół microG.

microG bywa również dołączane do wybranych, alternatywnych dystrybucji Androida; przykładowo dokumentacja /e/OS opisuje system jako dostarczany z preinstalowanym microG. Istnieje też osobny projekt dystrybucyjny „LineageOS for microG”, integrujący LineageOS, microG oraz F-Droida.

Zgodność z usługami Google Zakres zaimplementowanych interfejsów i stan zgodności są dokumentowane przez twórców w materiałach projektu (m.in. na stronach wiki).

Wśród rozwijanych funkcji pojawiają się także elementy związane z atestowaniem urządzeń. W informacjach o wydaniach GmsCore wskazano, że implementacja Play Integrity (wywiedziona z wcześniejszych prac nad SafetyNet) wymaga uruchamiania własnościowego kodu DroidGuard na urządzeniu, a funkcja jest opcjonalna.

Zastosowanie i doświadczenia użytkowników W źródłach społecznościowych i poradnikach użytkowników opisywano wykorzystywanie microG m.in. do uruchamiania aplikacji zależnych od usług Google na urządzeniach bez preinstalowanych GMS, a także do poprawy zgodności aplikacji z mechanizmami sprawdzania integralności urządzenia oraz do zapewnienia funkcji lokalizacji sieciowej i powiadomień.

Urządzenia HUAWEI bez Google Mobile Services W relacji opublikowanej w społeczności HUAWEI opisano korzystanie z microG na telefonie bez preinstalowanych usług Google (HUAWEI Nova 12S) jako urządzeniu podstawowym przez około dwa miesiące. Autor wskazał, że w jego przypadku działały m.in. Gmail i Kalendarz Google, Mapy Google, aplikacje bankowe, mObywatel oraz WhatsApp (wraz z automatycznym tworzeniem kopii zapasowej konwersacji), a aplikacje instalowane z użyciem microG – według tej relacji – były silniej zintegrowane z systemem niż rozwiązania oparte na „emulacji” usług Google (np. GSpace, GBox). W tej samej relacji podano przykład aplikacji, której nie udało się uruchomić bez telefonu z fabrycznie zainstalowanymi usługami Google (Wings for Life).

W komentarzach do wątku zwracano uwagę na ograniczenia zależne od wersji systemu i urządzenia (m.in. komunikaty o braku wsparcia dla „imitacji sygnatur” oraz rozbieżności między komunikatem systemu a praktycznym działaniem w konkretnych konfiguracjach, np. powiadomień).

Fairphone 3 i LineageOS for microG W poradniku instalacyjnym dotyczącym Fairphone 3 autor opisał wykorzystanie dystrybucji „LineageOS for microG” jako systemu codziennego użytku, wraz z instalacją aplikacji z repozytorium F-Droid oraz alternatywnych klientów Sklepu Play (np. Aurora Store). W tej samej publikacji wskazano, że test weryfikacji (SafetyNet) w ustawieniach microG może zakończyć się niepowodzeniem, a autor opisał przykład konfiguracji, w której – mimo takiego wyniku testu – po zastosowaniu dodatkowych narzędzi i zmian w systemie zadziałała aplikacja bankowa (Nationwide). W aktualizacji wpisu autor podał też przykłady aplikacji bankowych, które w jego konfiguracji działały (m.in. Monzo, Nationwide), oraz takich, które nie działały (m.in. Revolut).

Samsung Galaxy S10e i iodéOS Na forum społeczności iodéOS opublikowano relację użytkownika, który po przejściu z oprogramowania producenta (Samsung) na iodéOS na urządzeniu Galaxy S10e opisywał m.in. problemy z działaniem wybranych aplikacji zależnych od usług Google. Autor wskazał, że początkowo nie działały mu m.in. Google Maps i aplikacja eBay, a następnie opisał przypadek przywrócenia pełnego działania Map Google po wykonaniu zmian w ustawieniach microG (w tym parametrów związanych z komunikacją w chmurze) i ponownej instalacji aplikacji.

Fairphone 2 i LineageOS 17.1: problemy z UnifiedNlp W dyskusji na forum Fairphone opisano przypadek przejścia na LineageOS 17.1 na urządzeniu Fairphone 2, w którym użytkownik wskazał, że poza jednym elementem „wszystko działało”, natomiast nie udało się uruchomić UnifiedNlp (komponentu związanego z lokalizacją sieciową) oraz jego rejestracji w systemie mimo instalacji i ponownych uruchomień. W odpowiedziach sugerowano m.in. związek problemu ze zmianą układu partycji w LineageOS 17.1 oraz opisywano tymczasowe obejścia w postaci paczek instalacyjnych (ZIP) mających dostosować instalator do nowszego układu systemu.

Aplikacje bankowe na systemach z microG (przykłady) W wątku dotyczącym kompatybilności aplikacji bankowych na niestandardowych systemach Androida użytkownicy opisywali przykłady działania bankowości mobilnej z wykorzystaniem microG. W jednej z odpowiedzi wskazano, że zestaw aplikacji bankowych i towarzyszących aplikacji 2FA działał na iodéOS, a w innej wypowiedzi potwierdzono regularne korzystanie z aplikacji BBBank i SecureGo na systemie „LineageOS 4 microG” z włączonym mechanizmem SafetyNet w ustawieniach microG (określonym jako istotny dla działania w tej konfiguracji). W tej samej dyskusji wskazywano również, że niektóre usługi powiązane z płatnościami (Google Pay) mogą nie działać mimo poprawnej pracy aplikacji bankowych w innych kanałach.

Licencja Główny komponent (GmsCore) jest udostępniany na licencji Apache 2.0.

Zobacz też Android Open Source Project Google Mobile Services F-Droid

Przypisy

Kategoria:Android Kategoria:Wolne i otwarte oprogramowanie