題:
Google Play服務的開源實現
Nicolas Raoul
2014-03-10 11:20:37 UTC
view on stackexchange narkive permalink

Google Play服務是一個適用於Android的庫,可提供各種功能,例如地理定位

雖然Android是開源的,但 Google Play服務是專有的
許多開發人員忽略了這種差異,並將其應用程序鏈接到Google Play服務,從而使它們無法在100%開放源代碼的設備上使用。此類應用在嘗試訪問Google Play服務時通常不會安裝或強制關閉。

是否存在Google Play服務的任何開源實現?
或者至少假裝了一個模擬/存根是否存在Google Play服務?

沒有經驗,我無法回答。但您最有可能正在尋找[NOGAPPS](http://forum.xda-developers.com/showthread.php?t=1715375)。仍在開發中,尚未準備好所有零件,但看起來很有希望。
這樣的事情可能不存在。請參閱[本文](http://arstechnica.com/gadgets/2013/10/googles-iron-grip-on-android-controlling-open-source-by-any-means-necessary/),其中探討了這種情況去年秋天。
Google Play服務可以讓您的手機正常工作。我記得最近讀過,所有Web應用程序都需要Google Play服務才能正常工作。 Google仍然需要一部分非庫存的Android操作系統。文章確實談到了Google使用Play服務再次控制Android的情況。是的,Android是免費和開放源代碼,但除了體驗外,Google仍需要Google Play服務。我確實找到了在[ArsTechnica]上再次找到的文章(http://arstechnica.com/gadgets/2013/09/balky-carriers-and-slow-oems-step-aside-google-is-defragging-android/ )
@Traven:“ *所有Web應用程序都需要Google Play服務才能運行*”←是錯誤的。沒有Play服務的設備可以使用Web應用程序,也可以使用大多數本機應用程序。
二 答案:
Izzy
2014-04-26 00:14:49 UTC
view on stackexchange narkive permalink

根據OP的明確要求,這是我的答案–缺少經驗。 sup>

免責聲明:

我沒有個人經驗有以下經驗。只是在我的“試用內容”列表上,所以我只查看了詳細信息。

答案:

NOGAPPS 根據其描述,a> 正是您要查找的內容。該項目旨在為Android API提供與 Google Services Framework (GSF)提供的界面完全相同的界面-區別在於它們將其他服務用作後端。這些服務實際上是開源的,不是專有的,因此可以自由地研究代碼,並建立信任級別。

項目的一部分:

  • 網絡位置:
    Apache許可證。使用本地數據庫(存儲在SDCard上)或Apple數據庫。 我以為我記得這裡曾經使用過OpenCellID,但是至少鏈接的XDA文章沒有寫明。 sup>狀態:發布(即穩定)
  • Maps API v1:
    LGPL。使用OpenStreetMap作為後端。州: Beta
  • BlankStore:
    開放源Google Play商店客戶端。 Apache許可證。狀態:已停產

不可用,但在使用中:

  • LoginService。狀態: dev
  • 服務框架。狀態: dev
  • Maps API v2。狀態:未知。

儘管使用了其他後端,但 NOGAPPS 卻呈現了完全相同的界面。因此,依賴某些Google專有代碼運行的應用程序不會引起注意,而是透明地使用提供的開放源代碼吊墜。當然只有在可用時(例如LoginService仍然不可用,因此它無法工作)。我不知道是否存在尚未完成的東西的“虛擬接口”(使應用程序認為例如LoginService在那裡,但是目前無法訪問服務器–因此它們不會崩潰,只是缺少相應的功能)。

對我來說,這聽起來像是一件很棒的事情。而且,如果我早一點知道(在刷新最後一個設備之前),我已經嘗試過使用它代替GApp:)

有關更多信息,正在進行的開發的詳細信息等,請參閱 NOGAPPS項目的鏈接XDA頁面。

NOGAPPS: Help develop an Open Source replacement for Google Play Services

PS:您可能還希望看到[沒有Google 5的Android:免費釋放Droid!](http://android.izzysoft.de/articles/named/android-without-google-5),我已經開始使用它: )
看來NOGAPPS已經變成了microG:https://microg.org/
@TinMan不僅出現,而且是事實。切換是一年多以前發生的-但只有在我發布此答案之後:)您現在也可以在Github上找到它。
@Izzy很好的答案,如果我引用microG可以嗎?我目前正在使用它,並且一切正常,包括本地Playstore,只有一點點地理位置問題有時是不正確的?
@xavier_fakerat µG是NOGAPPS項目的後繼者。請注意,這裡的答案來自2014年,當時µG還不存在:)而且它的安裝當然要容易得多:)有關詳細信息,[我寫了一篇文章]名為/ android-without-google-5a),您可能希望參考一下。
@Izzy謝謝
xavier_fakerat
2017-04-17 01:49:07 UTC
view on stackexchange narkive permalink

µg項目(Izzy在他的網站上有很好的描述)

MaR-V-iN開始開發他命名的NOGAPPS軟件包-一組應用程序和旨在彌補缺失的缺口包的空白的框架。該項目現在以µg項目的名稱繼續進行。

該項目的主要思想是為Google注入Android生態系統的所有專有部件提供免費替代品。

如今這主要是兩個組成部分,都稱為Play Services:

  • 客戶端庫播放服務,由開發人員和 GmsCore

  • 此庫使用的服務組件。 Play服務或多或少包含所有較新的專有Android功能。

這些組件也分為3部分:

  1. GmsCore或多或少與Google Services相對應

  2. GsfProxy通過其他應用程序的Google Cloud Messaging對核心進行了補充

  3. FakeStore或或者是空白商店,甚至是本地Playstore

  4. ol>

    地理位置

    當前,Android有兩個用於地理定位的API。其中一個是由 UnifiedNlp實現的開源Location API,另一個是專有的Play服務Location API。

    UnifiedNlp本身不提供任何功能。 ,但充當多個後端的中間件。所有這些都可以使用F-Droid

    下載和更新。

    以下是用於地理定位和(反向)地理編碼的後端列表:

  • AppleWifiNlpBackend-使用Apple服務解析wifi位置的後端。

  • OpenWlanMapNlpBackend-使用OpenWlanMap.org解析用戶位置的後端。

  • p>
  • OpenBmapNlpBackend-使用openBmap解析用戶位置的後端。

  • MozillaNlpBackend-使用Mozilla定位服務解析用戶位置的後端。

  • PersonalWifiBackend-WiFi AP的本地位置提供程序,使用電話生成的數據庫。LocalGSMLocationProvider -基於本地opencellid的位置提供程序後端

  • LocalGSMBackend-具有單獨數據庫文件(lacells.db)的gsm單元的本地位置提供程序
  • 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

使用需要“ 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繼承來的這個較新項目的最新信息包括在內,並參考他的資料。

    參考文獻

    1. 沒有Google的Android:microG
    2. 使用沒有Google Apps的Android
    3. ol>
    總結,澤維爾!但是,有一些建議:1)它不是OpenStreetMap嗎?我從未聽說過OpenScienceMap :) 2)µG有[可以使用的F-Droid回購](https://microg.org/fdroid/repo)(這是我的工作)。 //感謝您的功勞和參考:)
    @Izzy我修改了這篇文章,是的,有一個開放科學項目,我包含了鏈接
    感謝更新!我對OpenScienceMap表示正確。一直以為µG使用OpenStreetMap,但您似乎是正確的(經快速檢查確認)。
    @Izzy,但我也相信有一些opentreet實現,或者我可能對opencellid感到困惑。但是,謝謝!
    NOGAPPS正在使用OpenStreetMap。看起來Marvin切換到了OpenScienceMap。 OpenCellId由UnifiedNlp GSM後端使用:)
    VLC還寫了一個開源替代Chromecast庫https://geoffreymetais.github.io/features/vlc-30/#why-chromecast-support-took-so-long


    該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
    Loading...