為啥小米開發者向安卓提交了兩行代碼,就被網友給噴了?_風聞
差评-差评官方账号-2022-05-26 07:41
本文原創於微信公眾號:差評 作者:託尼
這兩天,有一個關於 “ 小米提議禁止安卓手機提取 APK 文件,遭谷歌駁回 ” 的新聞很火。

這個新聞中説外網有個叫 Mishaal Rahman 的推主爆料,説小米開發者**“ 擬徹底阻止 Android 設備所有者從手機中複製 APK 文件 ” 。**

這麼做的理由是 APK 可能包含一些私有資源,為了保護用户安全,最好只從 Google Play 以及受信任的第三方應用市場獲取 APK 。
很多不明真相的網友看到這個就直接炸毛了,我就是衝着安卓自由開放的生態來的,人民羣眾喜聞樂見,你小米居然想搞封閉生態?

但其實呢,我仔細看了看這位開發者的代碼,發現它只是限制設備使用者在利用 ADB Shell ( 電腦上調試應用時使用的命令行開發工具 )提取 APK 文件。

對於中國大陸安卓用户來説,這樣的操作一定不會陌生:你有一個很喜歡的遊戲,但是卻找不到地方購買或者不想花錢買。
於是你就會去某個眾包網站找這個遊戲的 APK ,下載到手機上進行安裝。

那麼網站上的這個 APK 是哪來的?就是那些購買過遊戲的用户,利用 ADB Shell 之類的手段把這個遊戲還原成了安裝程序。
這位開發者的提議,説白了就是為了防破解防盜版。
這和之前的 “ 徹底阻止 Android 設備所有者從手機中複製 APK 文件 ” 的本質是完全不同的。
因為這兩行代碼並不會對於用户從第三方下載 APK 、或者手機互傳 APK 並且進行安裝這樣的操作有影響。

結果這個出發點被曲解了,搞了個大新聞,引來了許多的罵聲。
至於為啥谷歌不同意,其中一個原因是這兩行代碼並沒有那麼實用。
根據外國開發者的説法,這個做法只能攔住那些普通用户。
有一定技術能力的用户安裝一個調試版本的安卓系統就能和以往一樣用 ADB pull 提取 APK 。

只要有那麼一兩個人去安裝了調試版本的系統,並且把 APK 提取出來進行分享,那這個保護措施就等於廢了。
就好比你把世界上所有住户的鑰匙都沒收了,但只要還有開鎖匠在,住户們最終還是能進自己家門。
巧的是,絕大部分的普通用户平時並不會用 ADB 抓包各種軟件,去幹這個事情的都是有點兒水平的用户,這個代碼根本攔不住這些技術黨。

如果再深入地去看一下雙方在這個項目下的留言,我們可以發現其實這場風波的本質在於兩者所在地應用市場生態的差異。
小米開發者提出,他始終覺得直接導出數據是不安全不合適的,並且以那些付費下載的應用程序舉例。

比如有一個人付費購買 App 後,抓包出 APK ,放到各種平台上給別人下載安裝,給開發者帶來巨大損失。
然而外國開發者認為則是覺得,這個事情和用户怎麼幹沒關係,那些付費應用應該檢查用户是否付過錢。
比如可以通過查詢 Google Play 賬號的購買記錄、查詢設備、查詢安裝程序來判斷這個 App 是不是付費過的。

這是因為海外有Google Play 這個較為統一的應用市場,甚至近乎壟斷,這種操作在外國人眼裏是常識,可是卻並不適用於中國大陸的安卓生態環境。
放眼中國大陸,那麼多的應用市場裏,各位差友覺得哪家算得上 “ 最大 ” 的?這恐怕很難有一個具體的答案。
打個比方,我去年在小米應用商店花錢買了一個 App ,但今年我換了華為手機。
如果我把那個 App 抓包在華為手機上安裝,華為手機應用市場也不會有我的購買記錄。

可是作為一個安卓用户,隔一年換個系統用用是很常見的操作,我明明是付過錢的正版用户,到了華為那邊卻成了盜版用户,這誰受得了?

鑑於這種情況,中國大陸安卓應用市場基本上就沒有付費下載這種生態,開發商也無法依靠應用商店判斷當前用户是否付過費。
擁有完善健全的付費下載應用的生態,對於廠商、軟件開發公司以及獨立開發者來説都是好事,可惜這其中的根本問題,並不是兩行代碼就能解決得了的。

此外,小米開發者還提到了另外一個問題,就是關於 APK 內圖片之類的資源泄露問題。

因為 APK 本質是一個壓縮包,用户在電腦上把它的後綴改成. zip 之類的就可以輕鬆解壓縮,然後就可以使用裏面的一些圖片。
這樣一來就會涉及版權問題。
外國開發者的回答也很直接:圖片資源應該靠版權法保護。

而從一開始,這位小米開發者就提出了自己的疑慮:在開發者模式的高權限下,用户手機中所有的數據都能被提取出來是一件很危險的事情。
而且人人都可以通過 APK 來看到這些數據,這些數據都屬於用户個人隱私,第三方是不應該有這種權限的,因此他用那兩行代碼進行了一些限制。

至少從表面上看,這位開發者是為了用户隱私在着想。
但實際上,外國開發者認為 APK 裏面的東西根本就不能算私有資源,他的代碼也攔不住真正想要看這些資源的人。

反正掰扯半天,這個提議最終被谷歌給駁回了。

從表面上看是雙方各執一詞無法互相理解,本質上的原因其實很簡單。
説白了,這位小米開發者發起這個修改,是因為他看到了一些安卓系統本身存在的問題,並且逐一列出了理由。
只是很可惜,這些問題在外國的開發者眼裏並不算什麼問題,更何況這代碼也不夠牛 X ,自然也不用談去解決問題了。
其實吧,想要保護收費應用的方法根本就不在於提高 APK 的提取門檻,你的門檻再高,也有高手能跨過去。
與其搞這些東西,不如想想怎麼給應用搞一個更加合理點的收費驗證系統比較實在。
圖片、資料來源:
https : //android-review.googlesource.com/c/platform/system/sepolicy/+/2101015/1
知乎,小米提議禁止安卓手機提取 APK 文件,遭谷歌駁回,駁回的原因是什麼?觸犯了哪些利益?@
Wearone、@大顧
小米提議禁止安卓手機提取 APK 文件,遭谷歌駁回
