啊?华为和谷歌,这俩什么时候又搞到一起了?
事情是这样的,上个月,借公司团建的机会,我们去了一趟泰国曼谷。在曼谷的商场里,我们居然看到了一个按理不应该看到的身影,没错,就是华为。
不知道有多少人跟托尼一样,一直以为几轮制裁下来,既没有 5G ,也没有谷歌全家桶,华为在海外活得应该很惨。
但实际上起码在泰国,它还是活得好好的,光是曼谷一座城市店面的数量就不下十家,已经快比得上一些国内三四线城市了。
更离谱的是,我们在其中一家授权店里体验泰国版的 Pura 70 的时候,发现这上面居然有谷歌全家桶!
给没反应过来的差友稍微解释一下,海外用户日常的生活基本上是离不开谷歌地图、谷歌相册、 YouTube 这一整套东西的,就有点像我们国内用户离不开微信和支付宝一样。
但他们能用上这些谷歌应用的前提是,手机得内置了谷歌移动服务,也就是 GMS 。它是 包括 Google Play 服务、 Google 商店在内的一整套移动服务集合。假如在一台没内置 GMS 服务的手机上运营这些 App ,打开的时候就会直接报错。
可众所周知,自打 2019 年华为被列入实体清单后,谷歌就停止了对华为内置 GMS 服务的授权,所以按理说 Mate 30 之后的机型都是没法用这些谷歌应用的。
然而这台泰版的 Pura 70 ,不但用上了谷歌全家桶,还光明正大地摆在店里卖了,这是为啥?难道说谷歌和华为在我们不知道的角落,顶着美帝的压力偷偷搞了什么 PY 交易吗?
为了搞清楚到底是怎么一回事,我们特地花重金买了一台泰国版的 Pura 70 研究了一下。结果发现根本不是美帝和谷歌睁一只眼闭一只眼,而是华为动了点小心思。
具体讲,就是这台泰国 Pura 70 用的根本不是真正的 GMS ,而是一个叫 MicroG 的开源平替方案。
不知道 MicroG 是啥玩意的小伙伴也没关系,说明你们还年轻,折腾过 MicroG 的,都快是三十多岁的老东西了 ~
好了不卖关子了,接下来我们把时间拨回到 2012 年的德国,我们来听一段谷歌的 “ 作恶故事 ” ,听完大伙儿就知道是咋回事了。
刚把安卓收购过来的时候,谷歌还是想把它打造成一个开放的移动生态系统的。这时候, Google Play Store 、 Google Maps 、 Gmail 这些服务和应用,也都是开源免费的。
当时应用软件的开发者们也没那么多心眼子,想着谷歌既然说是开源的,那就拿过来用呗。于是很多第三方的 APP 都直接调用了谷歌提供的开源的库和接口。
但是到了 2012 年的时候,一位叫 Mar-V-in ( 马尔文 )的德国老哥发现,诶,不对啊,谷歌你这开源不保熟啊。
他在 XDA 论坛上发布了一篇帖子,宣称因为受够了谷歌系软件对他的追踪,所以他一直用的都是第三方的地图和应用商店。
甚至连系统用的都是基于 AOSP 定制的安卓,也就是我们常说的魔改安卓,绝对开源免费而且自由。想着 Android 不是开源的系统嘛,按理来说这么玩也没什么问题。但没想到,有一天他发现,这招居然走不通了。
复查了一下才知道,原来是谷歌这个老六,把很多原本在安卓底层就提供的服务,渐渐都迁移到谷歌服务( GMS )这个可选安装的组件里面去了。
换句话说,假如安卓手机出厂不预装谷歌服务组件,好多 App 里面基础的定位、地图等等服务都用不了了,相当于残废了。
但 GMS 并不是开源的,要用必须要给谷歌交钱拿到谷歌的授权。
这老哥又不想向谷歌低头,于是他连同一帮自由应用开发者,把这些服务框架全都给反编译了,免费开源给跟他一样不想用谷歌的开发者和用户。
相当于凭借自己的努力,撸了一套土制版谷歌服务 apk ,虽然还是要访问谷歌的服务器,但是本地模块的代码全都是这哥们自己写出来的。
马尔文一开始给这个项目取的名字叫 NOGAPPPS ,很直接,就是不想用谷歌 APP 的意思。到了 2016 年的时候正式改名为 Micro G ,也就是我们这台泰版 Pura 70 上用的这一套。
Micro G 通过模拟 GMS 的关键组件,比如 Google Play 、服务,使得原本需要 GMS 才能正常运行的应用,能够在华为 Pura 70 这种没有 GMS 的设备上运行。
更重要的是, Microg 采用的是 Apache License 2.0 开源协议,任何人都可以自由地使用、修改和分发 MicroG 的代码,不像 GMS 一样,属于谷歌专有,要用还得给谷歌交钱,让谷歌授权。
如今的 Micro G 已经非常成熟了,没有 GMS 的手机只要到 Micro G 的官网下载两个安装包就能解决了。。。吗?
当然不行,因为谷歌也不是傻子, GMS 这么重要的东西,怎么可能让你 copy 一份就拿给别的手机用。
谷歌隐藏的保护机制,就是验证 GMS 安装包打包时候的数字签名。
打包用的数字签名只掌握在谷歌自己手上, MicroG 是仿冒不了的,所以直接安装 MicroG 之后,签名和真 GMS 的不一样,其它 App 压根不信任它,所以拒绝通信。
从 MicroG 的官方说明可以看出,项目组是知道这个问题的,并且也给出了解决办法:手机固件的开发者,需要在固件开发阶段,就往系统里植入一个 “ 签名伪装补丁 ” 。
相当于是让操作系统帮 MicroG 作弊,站出来告诉其他 App :这就是谷歌官方的 GMS ,我帮你们校验过了,你们直接通信就好了 ~
在泰国版 Pura 70 的 MicroG 的自检界面,会显示支持系统签名伪装。这就说明,华为在海外版的 EMUI 固件里,提前预埋了帮助 MicroG 通过 GMS 签名校验的 “ 欺骗补丁 ” 。
而在国行手机的 HarmonyOS 里,你如果直接从 Mico G 官网下载安装的话,自检页面会提示系统并未支持签名伪装。
比如我们手上这台国行版的华为 Mate X5 ,即使把 Micro G 的两个都装上了,谷歌地图和谷歌商店还没办法正常使用。
那是不是说明只有海外版的华为手机能用上 Micro G 这个方案,国行只能光看着?如果你这样想的话,那就是既低估了 Micro G 也低估了华为。
在 Micro G 官网,除了正式的安装包之外,我们还找到了两个带 “ hw ” 字样的安装包。
把他们都下载安装之后,就发现,自检页面上的签名伪装支持被勾上了。
安装上谷歌地图和油管这些软件,也能正常使用了。也就是说,国行版本华为手机目前还是预埋了 “ 欺骗补丁 ” 的,只不过还要配合华为专用版的 Micro G 才能发挥作用。
更离谱的是,我们负责测试的同事发现,国行版的华为应用商店里也能直接搜到 MicroG ,装好之后 Micro G 官网下载的带 hw 后缀的包,效果是一样的。。。
华子和 Micro G ,你俩藏得真够深的,搁着跟谷歌打游击呢?
除了 Micro G 以外,华为手机还有很多渠道可以用上谷歌全家桶,比较常见的有 “ 出境易 ” 。它的实现方式跟 Micro G 又不太一样,你只能在出境易这个软件里面安装谷歌软件,并不能直接装在手机上。
而且相比起 Micro G ,出境易被海外平台封号的风险也更大一些,所以只适合短时间出国的时候用。
为了照顾海外用户,华为可以说是用尽了办法了,从禁令刚开始的时候推出 HMS ,企图替代 GMS 为海外用户继续提供定位、消息通知等等服务,再到现在的 Micro G 和出境易等等。
海外用户想同时拥有华为手机和谷歌的服务却用不了,这样的局面除了众所周知的美国禁令之外,一定程度上跟谷歌一边喊开源一边偷偷把各种东西专有化的做法也脱不了干系。
我们也没想到,一时兴起买了台泰版的手机,能牵扯出这样一个少年终成恶龙,又被另外两个少年联起手来反抗的故事。
大家就当看一下,世界上另外一个地方的普通人怎么用华为手机吧。