Google Play服務是一個適用於Android的庫,可提供各種功能,例如地理定位。
雖然Android是開源的,但 Google Play服務是專有的。
許多開發人員忽略了這種差異,並將其應用程序鏈接到Google Play服務,從而使它們無法在100%開放源代碼的設備上使用。此類應用在嘗試訪問Google Play服務時通常不會安裝或強制關閉。
是否存在Google Play服務的任何開源實現?
或者至少假裝了一個模擬/存根是否存在Google Play服務?
Google Play服務是一個適用於Android的庫,可提供各種功能,例如地理定位。
雖然Android是開源的,但 Google Play服務是專有的。
許多開發人員忽略了這種差異,並將其應用程序鏈接到Google Play服務,從而使它們無法在100%開放源代碼的設備上使用。此類應用在嘗試訪問Google Play服務時通常不會安裝或強制關閉。
是否存在Google Play服務的任何開源實現?
或者至少假裝了一個模擬/存根是否存在Google Play服務?
根據OP的明確要求,這是我的答案–缺少經驗。 sup>
我沒有個人經驗有以下經驗。只是在我的“試用內容”列表上,所以我只查看了詳細信息。
NOGAPPS 根據其描述,a> 正是您要查找的內容。該項目旨在為Android API提供與 Google Services Framework (GSF)提供的界面完全相同的界面-區別在於它們將其他服務用作後端。這些服務實際上是開源的,不是專有的,因此可以自由地研究代碼,並建立信任級別。
項目的一部分:
不可用,但在使用中:
儘管使用了其他後端,但 NOGAPPS 卻呈現了完全相同的界面。因此,依賴某些Google專有代碼運行的應用程序不會引起注意,而是透明地使用提供的開放源代碼吊墜。當然只有在可用時(例如LoginService仍然不可用,因此它無法工作)。我不知道是否存在尚未完成的東西的“虛擬接口”(使應用程序認為例如LoginService在那裡,但是目前無法訪問服務器–因此它們不會崩潰,只是缺少相應的功能)。
對我來說,這聽起來像是一件很棒的事情。而且,如果我早一點知道(在刷新最後一個設備之前),我已經嘗試過使用它代替GApp:)
有關更多信息,正在進行的開發的詳細信息等,請參閱 NOGAPPS項目的鏈接XDA頁面。
µg項目(Izzy在他的網站上有很好的描述)
MaR-V-iN開始開發他命名的NOGAPPS軟件包-一組應用程序和旨在彌補缺失的缺口包的空白的框架。該項目現在以µg項目的名稱繼續進行。
該項目的主要思想是為Google注入Android生態系統的所有專有部件提供免費替代品。
如今這主要是兩個組成部分,都稱為Play Services:
客戶端庫播放服務,由開發人員和 GmsCore
此庫使用的服務組件。 Play服務或多或少包含所有較新的專有Android功能。
這些組件也分為3部分:
GmsCore或多或少與Google Services相對應
GsfProxy通過其他應用程序的Google Cloud Messaging對核心進行了補充
FakeStore或或者是空白商店,甚至是本地Playstore
地理位置
當前,Android有兩個用於地理定位的API。其中一個是由 UnifiedNlp實現的開源Location API,另一個是專有的Play服務Location API。
UnifiedNlp本身不提供任何功能。 ,但充當多個後端的中間件。所有這些都可以使用F-Droid
下載和更新。
以下是用於地理定位和(反向)地理編碼的後端列表:
AppleWifiNlpBackend-使用Apple服務解析wifi位置的後端。
OpenWlanMapNlpBackend-使用OpenWlanMap.org解析用戶位置的後端。
OpenBmapNlpBackend-使用openBmap解析用戶位置的後端。
MozillaNlpBackend-使用Mozilla定位服務解析用戶位置的後端。
PersonalWifiBackend-WiFi AP的本地位置提供程序,使用電話生成的數據庫。LocalGSMLocationProvider -基於本地opencellid的位置提供程序後端
安裝說明:
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
使用需要“ Play Services” API的應用
以下是您沒有Google Play服務時可能會遇到的一小件事:
某些應用由於缺少Google Maps API而無法安裝。
某些應用在啟動時因fc(強制關閉)而死機缺少Maps API或Play許可證檢查問題。
一些應用對多個Google Apps的硬編碼鏈接,因此在某些情況下會強制關閉或發生意外反應。
這裡是µg GmsCore。該應用程序提供了一些Play服務的實現。
當前,主要開發人員僅將開發的重點放在經常使用的Play服務部分上: >
LoginService:允許您登錄到Google帳戶(OAuth)
Google Cloud Messaging:GCM(代替C2DM)是在其中運行的推送通知服務手機上的背景。它會偵聽由使用它的應用程序存儲在Google GCM服務器(由 GsfProxy 補充)中的消息
要使其正常工作,您的設備需要以便簽入,以便應用程序可以知道必須向其發送消息的Google帳戶。
Play服務位置API
Maps API(v2):將對Google Maps API的調用轉換為對OpenScienceMap的調用。由於 OpenScienceMap項目中開發的庫而顯示地圖。
要求:
您的純AOSP ROM需要支持µg軟件包簽名偽造。 Omnirom中就是這種情況( https://gerrit.omnirom.org/#/c/8672/ + https://gerrit.omnirom.org/#/c/13136/),並且即將在Cyanogenmod( http://review.cyanogenmod.org/#/c/106162/)中推出。
具有Xposed模塊的 FakeGApps。
4.4+ ROM,不含GAPPS
下載:
可在以下位置獲取最新版本: http://files.brnmod.rocks/apps/GmsCore/Latest/。 Getplay-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 shell作為root用戶並輸入以下內容:#am broadcast-一個android.provider.Telephony.SECRET_CODE -d android_secret_code:// 2432546
或者...您可以殺死/重啟µg GmsCore進程。操作系統監視器可以幫助您做到這一點。
從“ Play商店”獲取應用
有許多解決方案無需安裝Google Play商店即可獲取應用程序(APK)。但是,其中大多數依賴其他市場,或者您必須從計算機上安裝的程序中獲取APK。即使原生Playstore仍然可以正常工作(我也沒有問題),或者還有空白存儲。
代碼: 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必須作為系統應用程序安裝。
備註:
正如Izzy在評論中所建議的那樣,這是實現開源Google Play服務且完美運行的最簡單方法之一
我衷心感謝Izzy允許我將從NoGApps繼承來的這個較新項目的最新信息包括在內,並參考他的資料。
參考文獻