快轉到主要內容

UnifiedPush:去中心化的Android通知推送服務,替代Google FCM

· 民國115年丙午年
·
切換繁體/簡體
分類   智慧型手機 手機APP分享
標籤   F-Droid Degoogle MicroG
目錄

UnifiedPush是不依賴Google的Android通知推送服務。

目前已經有一些開源APP開發者採用此機制,取代Google FCM來推送通知。

1. Google FCM推送通知的問題
#

Android APP要推送通知,最簡單的方法是常駐一個服務在背景,但絕對不能讓每個APP都這樣做,這會很耗電,變成你用綠色守護都殺不完。

推送和接受通知,需要有一個統一的管道。

在自由世界,Google主導的Firebase Cloud Messaging(簡稱FCM)乃是最受歡迎的,內建於GMS服務。開發者可以免費使用FCM推送訊息。所有的APP的通知都由GMS在手機上統一處理,避免每個APP要各自發送通知導致的混亂情況。

在中國大陸,Google服務不可用,所以是看各家如何實作。一些廠商如小米、Oppo、華為、中興加入了统一推送联盟以消弭這個問題。總覺得這個隱私問題比FCM過之有無不及。

講回FCM,一些人認為這個推送機制有隱私問題,儘管傳輸過程會使用HTTPS加密,但在Google伺服器是明碼處理的,Google服務理論上能讀取到所有訊息內容。開發者需要在APP額外做E2EE加密手續。

還有,在F-Droid建置的APP不可以依賴Google服務,這會導致APP無法使用FCM,致使通知出現問題。

再者,Degoogle的用戶若不裝microG,可能也會收不到FCM的訊息。

2. UnifiedPush簡介
#

UnifiedPush便是嘗試解決依賴FCM的問題。建立一個不依賴Google,去中心化的通知推送系統。

讓APP可以用統一的方式推送通知,由一個APP固定接收,避免各個APP彼此獨立運作耗電的問題。

UnifiedPush採用的規範與Web Push相容。

參考官網原理圖,UnifiedPush是去中心化的技術。APP送出通知之後,需要一個伺服器(Distributor)負責轉發訊息,再由手機上的APP收發。這裡伺服器可以自架,也能使用Mozilla的公共伺服器代發。

UnifiedPush傳輸過程訊息全部加密,你可以選擇用信得過的開源組織維護的伺服器轉發,也可以選擇全程自架伺服器。

UnifiedPush不是相容FCM的API,APP開發者要主動支援UnifiedPush才行。

即使UnifiedPush連線不可用,開發者也能選擇讓APP回退到FCM來推送通知。反過來說,使用FCM推送通知的APP,也可以採用UnifiedPush當作備案。

雖然UnifiedPush是專為Android手機設計的技術,但是他的架構也可以推廣到Linux桌面。已經有名為KUnifiedPush的實作出現。

3. 實際設定方法
#

參考官網列表,目前支援UnifiedPush的APP還不是很多的樣子,以開源通訊APP為主,例如Matrix和Mastodon。

  1. 首先安裝Distributor。ntfy是提供自架伺服器的UnifiedPush Distributor,提供REST API。有公用節點。需要註冊帳號才能使用。如果不想這麼麻煩的,你可以安裝Sunup,不用註冊,使用Mozilla的Push Server。

  2. 然後安裝要使用UnifiedPush的APP。以Matrix客戶端Element X為例。在F-Droid下載,不要從Play商店下載。因為F-Droid的APP不能依賴FCM,所以它會要求你使用UnifiedPush(設定 → 通知 → 疑難排解通知)

  3. 安裝好之後,Element X會自動偵測到Sunup的存在,使用這個服務推送通知。不過Sunup會有個通知一直常駐在通知欄,得將其長按關閉。

  4. 至於瀏覽器部份,官方版Firefox不支援UnifiedPush,需要使用Fennec或IronFox這類fork才行。使用者需要手動在設定裡面勾選使用UnitifedPush傳送通知。

相關文章

F-Droid與開源Android APP推薦列表
分類   智慧型手機 手機APP分享
標籤   F-Droid Android Free Software Android TV
Obtainium,以RSS訂閱方式下載手機開源APP,追蹤APP更新
分類   智慧型手機 手機APP分享
標籤   Free Software F-Droid Android Github RSS Feed
Android手機去Google化 (Degoogle) 的方案,microG替代Google服務框架
分類   智慧型手機 Root與刷機
標籤   Degoogle MicroG LineageOS

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。