「Go 谷歌安装器」的原理是啥

2022-12-19 09:57:09 +08:00
 liyafe1997

闲来无视折腾了下一台吃灰的血脉机 红米 5Plus ,给它刷回了官网的 MIUI ,最后一版官方包是基于 Android 8.1 的 MIUI11 ,并且没有自带 GMS ( MIUI 应用商店搜 Google Play 搜不到,如果自带有 GMS 的国行 MIUI 是可以搜到的,并且在应用管理里面确认了没有 com.google.android.gsf (服务框架), com.google.android.gms ( Play 服务), com.android.vending(Play 商店)这三件套。

突然想起酷安有个 Go 谷歌安装器,这东西印象好多年前也玩过,印象在彻底没有 Google 框架的机子上就算装了也是用不了的(因为不在 system 分区,只有普通 App 的权限)。只有一种情况能用就是国行机其实自带有 Google 框架,至少带有那个 gms 还有 gsf ,然后默认是禁用状态(后台压死),没有装商店,这时其实装个 Play 商店 App 就能用了,在 MIUI 的应用商店也能搜到 Google Play 商店这个 App 。(比如我的主力机 K30Pro 就是这种情况)

有意思的事情来了,这个红米 5Plus 开了那个谷歌安装器后确实没检测到这三件套,然后依次自动下载安装了这三个 Apk ,神奇的事情来了,装好之后居然能用!!能登录 Google 帐号,商店能下 App 。唯一「露馅」的地方就是,第一次启动时「 Google Play 服务(也就是 com.google.android.gms )」会请求定位权限(它不是一个系统 App ,只是一个普通 App ,能卸载的)。

一切都能正常使用,包括 Google Map 能定位(能启用 Google 位置信息服务),Gmail 也能用,等等,除了「 Play 服务未通过认证」(这个在预料之中)

最神奇的是,这个 gms 居然能把自己注册成为设备管理员(那个查找我的设备服务)。而且 Play 服务和 Play 商店这俩个 App 都能自更新,没有弹出那个应用包安装器,就是跟原版一样,后台自更新。

所以这到底是什么魔法能让这几个「通过 apk 安装的普通 App (非 system 分区里的)」能有这么大的权限:安装 /更新其它 App ,注册设备管理员,等等。

并且也试了,这三个 App 确实能直接卸载,卸得一干二净(如果是 system App ,只能「卸载更新」)

而且能绕过 MIUI 的自启动控制和后台清理,跟微信一样,哪怕没打开自启动,其它 Google App 一样能把 gms 拉起来,并且清后台不会被清掉。

我猜,有这么几种可能:1. Android 系统( AOSP )自带的这个后门,比如遇到特定签名的 App 给开放 system 权限(哪怕是通过 apk 安装的) 2. MIUI 给开的后门。

不知道这个安装器在其它品牌的手机表现如何,以及不知道这个安装器的三件套是不是特制的(甚至可能是 Google 官方特制,所以拥有 Google 正版签名)

14926 次点击
所在节点    Android
20 条回复
seers
2022-12-19 10:02:09 +08:00
私有 API ?
jeesk
2022-12-19 10:24:24 +08:00
反射可以使用很多骚炒作,不奇怪。
jeesk
2022-12-19 10:25:54 +08:00
google play 里面有个软件叫做 device info ,看了才知道 android 多么的不靠谱。
sheldor
2022-12-19 10:27:34 +08:00
你难道没有想过作为用户自主安装的 play 商店,play 商店为什么可以不经提示直接安装其他 app ?
ysc3839
2022-12-19 10:27:38 +08:00
MIUI 以前的版本给 GMS 开了后门,即使安装为用户应用也能调用一些系统应用才能使用的 API
oix
2022-12-19 10:57:20 +08:00
@jeesk 怎么不靠谱了?
jeesk
2022-12-19 11:07:21 +08:00
@oix 通过反射可以 hook 很多 api 出来,miui 无法拦截这些调用。
MLawliet
2022-12-19 11:12:34 +08:00
也一直想弄清这个问题,不过一直没弄清

应该可以排除私有 api 和反射这些类似利用安全漏洞的方式,如果存在这些安全漏洞,普通 app 可以轻易利用,那在国内这些 app 上早就利用烂了

比较可能的原因是国内的系统为 google 留了后门,因为通过包名和签名,已经可以判断就是 google 官方商店了,就允许它不提醒用户就安装应用,当然系统想禁止也很容易
preach
2022-12-19 15:46:23 +08:00
@jeesk 展开说说
Andrue
2022-12-19 16:00:52 +08:00
默认情况下 AOSP+GMS 才是谷歌完整生态环境,国内 rom 大多阉割了 GMS 中的三大基本 app:
google 服务框架
google play service
google play store
但除了 play store 为需要手动安装的 app 外,两个服务型框架都是内置在 rom 中处于冻结停用状态的,这也是小米启用谷歌服务后安装一个 play store 就能实用的原因
同样的 play store 作为一个 app ,其对于系统的操作权限来自于谷歌服务框架,这样预置在 system 目录中的服务框架就可以提供 root 权限

实际上在安卓 4.1-6.0 的年代谷歌服务与系统耦合度太高,厂商又缺乏 rom 定制经验,想要用 google 系服务往往是直接刷港版系统或者解锁后从 recovery 刷升级包来补完的,而当时各家厂商的处理器规格各异,安卓版本不同,需要精确的查找对应版本后才能确保不影响手机正常使用,远没有现在傻瓜化操作舒服

具体可以参考这个站
https://opengapps.org/
systemcall
2022-12-19 20:41:15 +08:00
开了后门,给对应包名+签名?的应用特权了
你可以试试没开后门的,装上去也用不了,最多转几下圈就没了
yukiww233
2022-12-19 20:47:31 +08:00
和什么反射 hook api 没任何关系
“无 root”情况下装了能用必然是官方系统内置了 google 框架的权限签名,俗称开了后门
包括 /system/product/etc/sysconfig/google-hiddenapi-package-whitelist.xml /etc/permissions/privapp-permissions-google.xml 等等

不用 xxx 安装器,你自己安装那 3 个 apk 也能获取同样的效果
liyafe1997
2022-12-19 20:50:40 +08:00
@yukiww233 原来如此,看来就是这几个 whitelist ,不用安装到 system 分区也能有对应的权限。确实跟安装器无关,它的作用就是下载那 3 个 apk ,都是 Google 官方签名的。
Muniesa
2022-12-19 20:53:54 +08:00
没什么特殊的,找到对应的 apk 自己手动装也是一样的效果
systemcall
2022-12-19 21:43:41 +08:00
@liyafe1997 #13
安卓的权限管理有几次大改
早期版本确实是装在 system 分区就有很高的权限,不装在 system 分区就没有
后来,通过一些方法让 UID 一样,就有很高的权限,甚至不需要签名一样,无所谓是不是系统应用。所以有那些针对什么阿里云 OS 之类的系统的开发者调试等的开启工具。system 分区的应用反倒不见得有很高的权限。不过这个改过好几遍吧,历史也很久了
再后来是分不同的级别,system 分区的 app 有 priv-app ,一般的 app ,vendor app 等类型。不是都有特权。好像是安卓 5.0 还是 6.0 吧,就是这个样子了。为了让一些后来安装的应用有权限,但是不至于像 4.x 那样改一下 manifest 就能提权,又做了更精细的处理
改动了很多次。埋白名单的方法,好像是安卓 10 还是 11 就不太行了
alafun
2022-12-19 21:52:57 +08:00
安利一个功能上有相关性的软件 Gspace
sdk234
2022-12-19 22:00:12 +08:00
@alafun 这个软件我一登录谷歌就判定我帐号被盗,然后我就必须重置密码。
imtianx
2022-12-19 22:03:15 +08:00
gbox 好像也可以,就是偶尔链接不上,对于不能解锁的可以尝试下。
SenLief
2022-12-20 02:21:18 +08:00
厂商给开了后门
hhhsuan
2022-12-20 09:22:27 +08:00
@yukiww233 这是正解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/903410

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX