自啟動、關聯啟動和騷動的安卓

近日,有媒體報道,有網友更新小米手機的最新測試版本後,在其提供的App隱私記錄功能中發現,手機上安裝的很多App存在頻繁自啟動,訪問、讀取手機資訊的現象。其中一款移動教學軟體十幾分鍾訪問手機照片和檔案近25000次。

這種“關聯啟動”或“鏈式啟動”的現象引發一些網友和媒體的關注,為什麼在使用者沒有操作的情況下App能自啟動?執行一個App時,為什麼要關聯喚醒其他App?

自啟動、關聯啟動和騷動的安卓

“被啟用”的騷動

在移動應用的開發和運營過程中,推送訊息(Push Notification)是非常重要的使用者觸達手段,透過推送訊息可以形成和使用者的互動,進一步帶來產品使用度的提升。現在APP的開發往往會整合使用一些第三方SDK,開發者一般將其用於開發特定的軟體包、軟體框架,有的Android端SDK僅需複製幾行程式碼即可接入,大大節約了APP開發者的成本。

比如在資訊推送方面,透過整合SDK實現APP推送能力,開發者在Android、iOS平臺的通知欄推送、應用內透傳訊息,這樣APP開發者可將資訊及時傳遞給需要的使用者,有效提高使用者留存率、活躍度。一般來說,SDK只是在APP開發者已知的情況下,幫助APP啟動應用後臺程序從而能收到訊息。

自啟動、關聯啟動和騷動的安卓

(國內安卓推送生態的囚徒困境)——《安卓推送“有救”了?從工信部統一推送聯盟說起》

Android手機可以透過廠商通道,如Android 手機廠商提供的系統級推送通道,實現不啟動應用就接收並展現訊息,或者透過第三方推送SDK自建的推送通道,透過特有的共享通道機制,維持裝置和第三方推送SDK伺服器間的連線,以保障推送訊息的觸達。有的時候,一個App中會同時存在多個SDK同時發揮作用。

類似前文媒體報道的現象不是個案。其他調查也顯示,一些常用App幾乎每天自啟次數都在100次左右;有的app啟動後在一分鐘之內嘗試啟動多款其他App;部分辦公、社交、娛樂類App啟動後會在短時間內高頻次訪問手機照片、檔案,甚至頻繁讀取使用者通訊錄等資訊。

國內的安卓軟體生態一直較為混亂,各種app頻繁喚醒、常駐後臺、定點推送,讓Android手機卡頓、耗電。也有一種可能是,一款App產品的考核指標當中最重要的是DAU。透過自啟動可以讓app處於“被使用”的“活躍”狀態,資料上就認為App被啟用次數越多,商業估值就越高,盈利能力就越強。

合理的界限

2011年出臺的《規範網際網路資訊服務市場秩序若干規定》第八條網際網路資訊服務提供者在使用者終端上進行軟體下載、安裝、執行、升級、解除安裝等操作的,應當提供明確、完整的軟體功能等資訊,並事先徵得使用者同意。《資訊保安技術個人資訊保安規範》和《網路安全實踐指南——移動網際網路應用基本業務功能必要資訊規範》,也對App超範圍收集、強制授權、過度索權等個人資訊保安問題進行了明確規定。

自啟動、關聯啟動和騷動的安卓

根據DCCI網際網路資料中心釋出的《2018年度網路隱私及網路欺詐行為研究分析報告》選取了近千款手機APP進行隱私安全測評,結果顯示,Android 端越界獲取手機隱私許可權的APP正在逐漸減少,到2018年下半年僅有2。0%的APP存在越界獲取手機隱私許可權的行為。

一概認為App等透過喚醒的服務程序自啟動,會造成使用者個人資訊洩露的觀點似有偏頗。當前所有的Android端APP都會不同程度的獲取手機隱私許可權。其中,最常獲取三大核心隱私許可權分別是獲取位置資訊、讀取聯絡人和讀取短/彩信。App透過自啟動、關聯啟動方式被喚醒,如果app已經獲得使用者授權讀取相關許可權,就不能一概定義為流氓軟體或者違法操作。在明確告知的情況下,被喚醒的App服務程序可以呼叫使用者已開啟的許可權,是正當的應用請求。

自啟動、關聯啟動和騷動的安卓

自啟動或關聯啟動也並不一定會成功。目前第三方推送都無法保證關閉應用過後還可以收到推送訊息,這個是手機定製ROM對SDK的service限制問題。當service被終止後,由系統、安全軟體和使用者操作限定是否能夠再次啟動。比如,App A拉起其它APP B\C\D,顯示拉起其它應用“已拒絕”,往往可能是拉起動作被手機系統阻止,最終是拉起失敗的。

需要留意的是,對於不同的使用者來說,不同的軟體和使用場景對自啟動的需求也不盡相同。比如需要及時收到資訊的社交軟體、辦公軟體、郵件等app,自啟動是一種強需求,如果關掉可能會影響需要的軟體的資訊推送。但對於使用頻次低、場景窄的軟體,自啟動的合理性就需要考量。

如果App自啟動、關聯啟動後,超越使用者授權讀取相關資料資訊,尤其是涉及詐騙簡訊、詐騙電話、惡意網址三大風險威脅著使用者的財產安全,或者未經使用者同意上傳相關內容,需要嚴厲打擊。

對抗和控制

一個有益的嘗試是,2017年10月成立的統一推送聯盟聯合制定了

UnifiedPushService(UPS統一推送服務)技術標準,推動GCM(GoogleCloud Messaging)服務——推必達,限制交叉喚醒、鏈式啟動,以及避免非必要後臺常駐服務。截至2019年年底,多數國內安卓手機品牌都支援了統一推送。

很多國產手機廠商也開始在其自制的系統中增加了對app進行監控和記錄的功能,讓使用者可以檢視、或者控制App的自啟動、關聯啟動機制。有的手機可以透過“進入設定——更多設定——許可權管理——許可權——自啟動——關聯啟動”,可將軟體後的開關關閉,則該軟體不會被其他軟體帶起。

自啟動、關聯啟動和騷動的安卓

隨著SDK開發平臺的發展,一些大的SDK開發商也在手機生態和軟體活躍度之間進行平衡,App透過自啟動、關聯啟動被喚醒的頻次是否合理,是否符合實現產品或服務的業務功能所必需的最低頻率。

比如,有的第三方SDK會維持2-3個程序,如果當前只有1個程序,則會再拉起一個;如果當前有2-3個程序,則不會拉起。一部手機如果有多個APP安裝有同一個第三方SDK,限制1個小時不會超過1次拉起。也有的第三方SDK升級在新的版本中如果選擇關閉拉起功能,則不允許別的集成了某個SDK來拉起APP;同時該APP也不會拉起其他集成了該SDK的其他APP。

一些安全軟體也增加了類似功能,比如“手機管家—一鍵加速-發現後臺程序”中進行清理,讓使用者對手機APP的執行許可權有一個清楚的瞭解。

TAG: APP推送自啟動SDK