我的设备没有小米预装的谷歌套件,所以一直是通过 Apkmirror 下载谷歌套件的应用后进行手动安装,这种方式使用的谷歌套件。
但是在 MIUI 升级至基于安卓 11 的系统版本后,匹配安卓 10 的谷歌套件运行在 11 上会出现一些问题。
也就是说现在,妥协的方法是安装与 安卓 10 的 Google 服务框架 相匹配的 Google Play 服务 才能够保证谷歌基本功能的可用,如果需要联系人同步,那么联系人同步的程序版本也依旧需要。
但是由于问题 2 中所述的 Google Play 服务 会被自动更新这一情况的存在,且这东西的自动更新它不受商店设置中[自动更新应用]选项修改的影响,所以无法中止它的自动更新,因此……它经常总是会被自动更新至不匹配的版本,而导致问题出现。
所以问题的关键来到了主题的标题所述的 新版 Google 服务框架 的安装方面。
首先,面向安卓 10 的 Google 服务框架 是可以正常安装在最新的基于安卓 11 的 MIUI 中的,但是在将面向安卓 11 的版本进行 [升级安装] 或者 [卸载旧版进行新安装] 的过程中就会遇到安装器提示 “安装失败 - 与已安装应用内容提供者冲突” 这一情况,如下图提示。
使用 LibChecker 查看 Google 服务框架 应用,可以发现其面向安卓 11 新版新增了一个内容提供器:com.android.car.ui.core.CarUiInstaller,而该内容提供器在旧版不存在,也就意味着这东西的冲突不是和安卓 10 的 Google 服务框架起的冲突。
而该内容提供器根据检索,也同样存在于 Settings Suggestings 、工作设置和权限控制器这三个系统程序中。
这个内容提供器是啥?我不知道。它能干什么?我不知道。为什么会冲突?我不知道。
但是 MIUI 的开发人员应该清楚。
所以,从手机的使用者方面来看,就是这三个系统程序之一起的冲突了对吧,但是这不是用户能解决的问题。
在小米社区进行反馈该问题的用户有很多,并且相关问题立项于 2020 年 11 月 23 日,但是至今仍未进入解决阶段,社区解答组的回复永远只有一句 “等待后续更新优化”,从 MIUI12 的内测开发版开始适配安卓 11,到 MIUI12.5 的发布,到安卓 11 进公测开发版,现在基于 Android11 的 MIUI 稳定版的设备都有了。
这期间,我在小米社区的内测圈发了九个帖子反馈这个问题,
安卓 10 的套件 依旧 在安卓 11 的 MIUI 里 妥协 的用着。
Chrome 和 Gboard 依旧 弹出着谷歌服务缺失。
Google 服务框架 依旧 不停的“屡次停止运行”。
得到的回复 依旧 是 “耐心等待后续版本更新优化”。
两个月了,问题立项这么久了,MIUI 的开发组能不知道这个问题?甚至还没有开始解决这个问题?那我只能去猜,这是不是 MIUI 故意占用了和面向安卓 11 的 Google 服务框架 相同的内容提供器以达到屏蔽安装的目的了吧?为了让有需求的用户选购预装谷歌套件的旗舰产品?我感觉可能是,但也可能不是,只有开发组知道。
对了,还有个在 MIUI 换到基于安卓 11 的之后就出现的问题,qq 这东西的简洁模式聊天页面在推出系统深色模式之后依旧是黑色背景,也是反馈到现在没有解决,系统的一些设置界面,比如深色模式相关设置下方的应用列表滑动时帧率跌落严重,也能被不靠谱的圈子管理员关联到 开启深色模式后所有操作掉帧 这种完全不相干的问题下面也是离谱。
全文较长,文字较多,图片较大,标题可能写的有点严重,情绪比较激动,文笔有些不足,内容可能有错,存在部分瞎猜,还请各位见谅。
1
jsyzdej 2021-01-17 20:28:38 +08:00 via Android
小米自带应用商城搜索"Google play 商店"安装试下?
|
2
Immemorial OP @jsyzdej 小米商城装谷歌应用现在已经没有关联了,没有预装就只能手动这是关键
|
3
ysc3839 2021-01-17 21:08:32 +08:00 via Android 1
本来 Google Play 就必须作为系统应用安装的,MIUI 可以作为用户应用安装并正常使用,可能是开了某些后门。
个人猜测 MIUI 升级到 Android 11 后没来得及更新相关后门的代码,导致无法使用。 个人建议先清除所有数据再尝试安装,如果还有问题,那只有解锁 bootloader 安装了。 |
4
Immemorial OP @ysc3839 谷歌套件作为应用存在的因素就证明了是可以被正常安装的,而不是所谓后门,即使华为设备也依旧可以由用户自行安装谷歌,只是这种常规安装方式无法通过谷歌的 Play 保护机制认证,将会有部分要求严格的应用无法被检索,如 Netflix 。
安装出现冲突的 Google 服务框架与解锁无关,与开发者选项 MIUI 优化无关,与系统中用户已安装程序无关,与谷歌无关,只是因为系统中的那三个系统程序与需要安装的面向安卓 11 的 Google 服务框架新增的内容提供器产生了冲突,仅此而已。 |
5
ysc3839 2021-01-17 21:32:03 +08:00 via Android
@Immemorial 能正常安装不代表能正常使用,你可以试试使用类原生系统安装 Play 服务,会出现一些奇怪的问题。华为设备要安装 Play 服务也需要使用一些后门,并不是直接安装为用户应用就可以使用。
解锁是为了把 Play 服务安装为系统应用,并不能说无关。 |
6
Immemorial OP @ysc3839 还是那个谷歌的 Play 保护机制认证,谷歌将完整的谷歌服务作为应用进行拆分,自己安装的功能相较于原生预装自然存在区别。但是这一切都和所谓的后门无关。
而且 MIUI 现在的问题是系统程序与谷歌服务套件核心应用出现了安装过程中的冲突,而不是由于系统没有后门这种原因。 |
7
fortynine 2021-01-17 21:53:43 +08:00 via Android
你在安卓 11 中,先安装 10 的全套框架,然后通过 play 升级框架。试试
|
8
Immemorial OP @fortynine play 只能升级 google play 服务至安卓 11 的对应版本……另一个没动静,而且 google play 服务升上去之后会导致 play 商店都打不开,得手动卸载再安装
|
9
fortynine 2021-01-17 22:01:38 +08:00 via Android
我就让你升级一个框架,商店不要动。
框架也不要通过 APK 安装。 通过 play 商店安装。 |
10
fortynine 2021-01-17 22:04:19 +08:00 via Android
而且我推荐你用谷歌安装器啥的安装。
|
11
Immemorial OP @fortynine 安装器也是走的这种安装途径,miui 不解决,这应用就装不上……
|
12
hoyixi 2021-01-17 22:10:52 +08:00
请教楼主,如你所述,是不是现在新出的小米手机,除了 MIUI 自带 Google 框架机型,剩下的机子都无法通过用户自行安装来正常使用 G 家 Play Store?
|
13
Immemorial OP @hoyixi 能用 10 的,但是有各种小问题
|
14
ggdxwz 2021-01-17 23:36:28 +08:00
@hoyixi #12 小米手机都是可以解锁后刷入完整代认证的 GApps 或者国际版 MIUI,但是对普通用户来说比较麻烦。
目前主流国产品牌里面允许解锁安装完整 GApps 的好像就只有小米和一加了,当然也有其他被破解的机型。 |
15
EIVX 2021-01-18 00:48:46 +08:00 via Android
@Immemorial 请在酷安搜索“x 谷歌安装器”,大概率可以解决你的问题
|
16
Zy143L 2021-01-18 02:32:20 +08:00 via Android
...设置>帐号与同步>谷歌基础服务
为啥这么麻烦 |
17
Mashirobest 2021-01-18 02:37:32 +08:00 via Android
miui12 有谷歌基础服务,可在设置打开
|
18
dijia1124 2021-01-18 02:47:58 +08:00 via iPhone
除非是新发布的国行机型,其他设备都可以安装国际版 miui 或者 eu 版 miui 的吧,可以试试,如果解决不了的话
|
19
dijia1124 2021-01-18 02:49:43 +08:00 via iPhone
@ggdxwz 一加的氢 os 安装谷歌服务好像并不完整,至少试过 8t 它不能语音唤醒谷歌助手,也没有谷歌 Autofill 自动填密码的功能
|
20
jim9606 2021-01-18 04:36:43 +08:00
MI9 开发版 12 升 12.5(20.12.9->21.1.14),并没有出现问题,全新安装就懒得测了,不过装完必须重启系统,以前 Android10 也是这样的。
注意 “设置->账号与同步->谷歌基础服务”,必须打开,同时 GMS 的几个关键权限不能拒绝。 我用的版本(我还手动更新过版本,都能用): gms: 20.47.14(120400-349456378)->20.47.14(150400-349456378) gsf: 10->11-6684105 商店: 22.1.18-21[0][PR]334276832->23.6.13-21[0][PR]350865673 都是在 gitlab.opengapps.org 下载的,我主要嫌弃安装器给的老版本。 |
21
alfchin 2021-01-18 07:42:56 +08:00 via iPhone
哪来的这么多问题
马来西亚那边都用得很好。。。 而且说是系统直接集成,打开开关,商店里更新就好 |
22
12101111 2021-01-18 09:57:41 +08:00 2
|
23
mxalbert1996 2021-01-18 10:09:10 +08:00 via Android
我在我的 Pixel 的 Android 11 和一加的 OxygenOS 11 上看了一下,也是这几个包有同名的 ContentProvider,还多个 Google 文字转语音引擎。所以这很明显是 Google 就这么设计的,本来就没考虑非预装的情况,这都能扯上阴谋论我也是服了。
|
24
longaiwp 2021-01-18 10:11:00 +08:00
反正小米 10 和小米 6 都从未遇到过问题,这一块无论怎么更新都是正常的。
|
25
Immemorial OP @Zy143L 请看帖子第一句, [我的设备没有小米预装的谷歌套件]
|
26
Immemorial OP @Mashirobest 请看帖子第一句, [我的设备没有小米预装的谷歌套件]
|
27
Immemorial OP @dijia1124 所以依旧存在没有国际版和 eu 版的设备,比如我的
|
28
Immemorial OP @jim9606 请看帖子第一句, [我的设备没有小米预装的谷歌套件]
|
29
Immemorial OP @alfchin 请看帖子第一句, [我的设备没有小米预装的谷歌套件]
|
30
Immemorial OP @longaiwp 请看帖子第一句, [我的设备没有小米预装的谷歌套件],小米 10 和 6 属于存在预装,自然不存在该问题
|
31
Kagari 2021-01-18 12:35:39 +08:00 via Android
谷歌框架停止本来就是玄学问题,比较常见的一般是要的权限给不了,可以试试关掉 miui 优化看看会不会有新的权限选项
|
32
Immemorial OP @mxalbert1996 声明内容提供器时,可以使用同名的命名,但是还有一个 authorities 字段也相同才会导致安装过程出现冲突,目前是工作模式这一系统应用中的 authorities 也完全相同
https://i.loli.net/2021/01/18/rYJMoTeImy9EA4O.jpg |
33
Immemorial OP @Kagari 这里不是权限问题,是系统组件创建内容提供器的配置存在问题
|
34
Lemeng 2021-01-18 12:57:38 +08:00
恢复下出厂设置?同小米,之前弄过,好像一次过了
|
35
Immemorial OP @Lemeng 和出厂无关,因为即使恢复出厂也依旧会因为使用了相同内容提供器命名且 authorities 字段配置一致导致无法安装
|
36
dijia1124 2021-01-18 16:14:21 +08:00 via iPhone
@Immemorial 我去年的米 10 也差不多,所以用了一个月就卖掉了,又买了台一加 7Pro 。MIUI 一点也不香。
|
37
Immemorial OP @EIVX 安装器可以提供能够我在帖子内有说到过的妥协的版本,我遇到的主要问题不是谷歌不能装、不能用,而是新版 Google 服务框架与 MIUI 系统程序冲突的问题
|
39
VinsonGuo 2021-01-18 16:30:25 +08:00
我之前的红米 k30 也是这样,升级到 11 之后,play 框架会通过 google 商店自动升级到 11 的版本。
当时我的解决方案主要是在 apkmirror 上下载那个 version code 最高,但是 minimum api 不是 30 的版本,这样 play 就不会自动给你升级到 api 30 的版本了。 但是如果 play 上的 play service 有新版本的更新的话,play 就会再次升级到 30 的版本,此时你只能把 google 套件卸载了重装。 总之,有 play 需求的最好考虑一加,如果买小米的话,最好买预装 google 套件的手机,就不会有这些糟心的问题了。 |
40
mxalbert1996 2021-01-18 16:41:46 +08:00 via Android
@Immemorial 所以我都说了 Pixel 和 OxygenOS 里也是一样
|
41
mxalbert1996 2021-01-18 16:46:21 +08:00 1
|
42
mxalbert1996 2021-01-18 17:02:49 +08:00
翻了一下 AOSP 的源码,确实就是这么设计的。
这里是一个叫“car-ui-lib”的库,其中定义了这个 provider: https://cs.android.com/android/platform/superproject/+/master:packages/apps/Car/libs/car-ui-lib/car-ui-lib/AndroidManifest.xml;drc=4bc8ca4fec6bacd03b77a1af99ef11b7c8ae5007;l=25 这里是 SettingsIntelligence 的 build 描述,其中引入了这个库: https://cs.android.com/android/platform/superproject/+/master:packages/apps/SettingsIntelligence/Android.bp;drc=ed819e9391af0a9d74a15ccdbee1ef3659545b5b;l=34 ManagedProvisioning 和 PermissionController 也是一样: https://cs.android.com/android/platform/superproject/+/master:packages/apps/ManagedProvisioning/Android.mk;drc=2398128cbd9ee4227eb98ba458bc6ad03a2ee77d;l=18 https://cs.android.com/android/platform/superproject/+/master:packages/apps/PermissionController/Android.bp;drc=1cdc4d00bdb0c3727c31e42888419f28b7c986de;l=97 |
43
Immemorial OP @mxalbert1996 创建这个内容提供器的 authorities 属性呢?为什么另外两个程序被正确的设置为了包名后跟 CarUiInstaller,而工作设置这个却被设置为了和 Google 服务框架一致的
https://i.loli.net/2021/01/18/pTycV9h5dRfnv27.jpg https://i.loli.net/2021/01/18/KihHWdVJrbk83t2.jpg |
44
Immemorial OP @mxalbert1996 而且你指出的这个库中也应该是设置了个包名后接“.CarUiInstaller”才对啊?
![Snipaste_2021-01-18_17-42-21.jpg]( https://i.loli.net/2021/01/18/vOwiLrkcf35qsNh.jpg) |
45
Immemorial OP @mxalbert1996 而且你所举例的 AOSP 库中的 SettingsIntelligence 、ManagedProvisioning 和 PermissionController 这三个应用甚至没有声明创建名为"com.android.car.ui.core.CarUiInstaller"的内容提供器
|
46
ourgoder 2021-01-18 17:54:26 +08:00
我升级 MIUI12 后也出现这个问题,很糟心
|
47
wtdd 2021-01-18 17:56:20 +08:00
这个问题影响 app 尤其是国产主流不够多,官方更新的动力很小,不如干脆刷第三方立竿见影,
另外,我遇到过类似的情况,是因为安装了正常使用后停用还是卸载,之后再次启用才出现的, 而同样机型没有这样做过,就毫无问题,如果你也这样做过,重置系统可能也是一个解决方案。 |
48
Immemorial OP @wtdd 重置系统无效,因为产生冲突的时系统内的程序
|
49
mxalbert1996 2021-01-18 18:03:36 +08:00
@Immemorial 看你也不是完全不懂 Android 开发,就算不知道搜索一下很难吗?
https://stackoverflow.com/questions/30790768/using-applicationid-in-library-manifest |
50
Immemorial OP @mxalbert1996 我没说我懂啊?但是你发的后三个链接中在 AndroidManifest.xml 里确实没有声明这个内容提供器啊?引用了库我不知道是不是一定要声明这个内容提供器。而且我看在这个 stackoverflow 问答里,也是提供的如何正确的使用应用包名替换${applicationId}的方法啊?
|
51
villivateur 2021-01-18 18:09:28 +08:00 via Android
楼主我跟你一样的问题,持续关注
|
52
wtdd 2021-01-18 18:10:18 +08:00
@Immemorial 那再试试重新安装,线刷或卡刷走起
|
53
Immemorial OP @wtdd 我和你解释下,产生冲突的时面向 Android11 的 Google 服务框架 这一应用,其创建了一个名为“com.android.car.ui.core.CarUiInstaller”的内容提供器,且 authorities 属性被设置为了“com.android.car.ui.CarUiInstaller”
然后在 MIUI 中也同样存在一个工作设置的程序里,创建了一个名为“com.android.car.ui.core.CarUiInstaller”的内容提供器,而且 authorities 属性也是被设置为了“com.android.car.ui.CarUiInstaller” 根据谷歌的开发指南 https://developer.android.com/guide/topics/manifest/provider-element 中描述,创建的同名内容提供器存在 authorities 属性一致时,会出现冲突 |
54
mxalbert1996 2021-01-18 18:15:24 +08:00
@Immemorial
不懂就不要乱说啊,还故意占用,小米想要组织你装 GMS 方法太多了,傻子采用这种方法,而且还是国内没人碰的 Android Auto 。 关于 provider 是怎么被引入的,Manifest Merger 了解一下: https://developer.android.com/studio/build/manifest-merge 第二个问题就有点搞笑了,这个问题下面是有回答,可是这跟 Google 用不用有什么关系呢?更何况 AOSP 的构建系统根本就不是 Gradle,本来也用不了。 |
55
Immemorial OP @mxalbert1996
但是现在存在的问题就是由于 MIUI 配置了一个和面向安卓 11 版本的 Google 服务框架这一程序中新增的内容提供器的命名和 authorities 完全一致的情况。 而 MIUI 中同样存在另外两个创建了该内容提供器,但是 authorities 的配置却符合谷歌提供的规范的程序。 |
56
Immemorial OP @mxalbert1996 而且就算是合并所包含的库中的清单文件了,那也是 MIUI 在打包过程中没有正确配置这个占位符替换导致的不是吗?
但是有两个程序的引用被正确替换了,而这个 工作设置 没有不是吗? 那不还是 MIUI 的问题吗? |
57
mxalbert1996 2021-01-18 18:25:34 +08:00 1
@Immemorial
所以我已经说过两遍了 Pixel 和 OxygenOS 也是一样。 只有 ManagedProvisioning 的 authorities 是 com.android.car.ui.CarUiInstaller 大概是因为它用的是 make 而不是 Soong,可能 Soong 会做一些特殊的处理使得 ${applicationId} 能正确地指向应用而不是库。 |
58
mxalbert1996 2021-01-18 18:28:53 +08:00
既然你懒不愿意自己解包,我这里给你发一个 Pixel 3a 里提取的 ManagedProvisioning,有兴趣自己反编译看看。
https://mega.nz/file/BYUBlC5Z#wLjBY8vBPfpiU1XOC1EXG_QwxDel_bHBsa2ZocDEQLU |
59
Immemorial OP @mxalbert1996 所以说,小米的设备不是每个都有预装谷歌,而且不能刷入方式添加谷歌套件,通过用户手动或者安装器安装的方式安装和系统匹配的谷歌套件就必然会撞上这个问题,我手上也没其他设备去找他们的工作设置,而且这么一通分析下来,我只能十分局限的认为是 MIUI 对这个程序的编译或者打包过程出的问题导致的不是吗?
|
60
mxalbert1996 2021-01-18 18:33:47 +08:00 via Android
@Immemorial 你知道谣言是怎样传播起来的吗?
|
61
Immemorial OP @mxalbert1996 所以我在问啊,我在查啊,在之前我连内容提供器是啥我都不清楚啊,而且装不上这个新版加上问题立项都两个月了没回应不就是让人感觉是有意的吗?
|
62
mxalbert1996 2021-01-18 18:40:13 +08:00 via Android
@Immemorial 那你明白了谣言是怎样传播起来的了吗?
|
63
Immemorial OP @mxalbert1996 这个和谣言有什么联系?
|
64
hoyixi 2021-01-18 18:41:06 +08:00
@Immemorial #61
今天看到一个帖子,自己安装 G 框架服务和 store 之后,试试在手机(系统)管理里把谷歌开头的服务,都给好各种权限,以及确认下这些服务的自启动是不是被 MIUI 关了,关了的话就打开自启。然后重启手机试试。 我自己手头没有手机做实验。 |
65
Immemorial OP @hoyixi 不是权限,是装不上。
|
66
Mashirobest 2021-01-19 02:47:35 +08:00 via Android
@Immemorial 。。。所以我的意思是升 miui12 啊🙈
|
67
Immemorial OP @Mashirobest 但是 MIUI 预装是分机型的,我的设备已经 12.5 了也都没有预装谷歌……
|
68
gricn 2021-01-19 17:56:06 +08:00
@Immemorial 用户 @mxalbert1996 想吐槽的点是:用不了 Google 服务框架就用不了,为啥要用“想请问 MIUI 是怎么屏蔽新版 Google 服务框架 在非预装谷歌套件的设备上安装的?”这种标题(易造成误会)。这个标题我认为不公允。
遇类似问题 Google 搜索进入,我的情况是 AppMirror 安装四件套成功,但有以下致命 bug: 1. Google 账户登陆后,Chrome 要求重新输入账户密码,而且由于原账户已经登录,故即使输入账户密码依旧无效。 2. Google 密码自动填充无法正常使用 但其他目前体验良好,近似 AOSP 体验。 不过目前 MIUI 的确做了:①MIUI 桌面将 Google 图标隐藏;②自带应用商店曾因谷歌应用维护之名不提供应用下载。 也不知道随着中美关系恶化,小米对待谷歌态度会如何。这也许是国内版问题提出 2 个月不给处理的原因之一吧。 (这是一幅假装存在的 速度、稳定、便宜图) |
69
Immemorial OP @gricn 因为在一开始,我不知道 MIUI 在将手机的系统的安卓版本升级后做了什么,而新版本的 Google 服务框架 无法安装这一情况是实际存在的,而预装了谷歌套件的设备是能够正常使用谷歌套件的,所以在我个人的判断下,认为是 MIUI 存在刻意屏蔽。
然后当前的情况我在本帖主要内容部分也有所说明,安装低版本(面向安卓 10 的)谷歌套件是可以较为局限的正常使用的,因为 Gboard 都会提示谷歌框架缺失。 Chrome 需要允许其“访问手机账户”这一权限才可以直接读取到系统内已经登陆的谷歌账户 自动填充可能被一个名为“小米智能密码管理”占用,使用一些可以手动设置在应用中填充的密码管理器应该可以改试试看 <a href="https://sm.ms/image/gEhqLDecbjuT3si" target="_blank"><img src="https://i.loli.net/2021/01/19/gEhqLDecbjuT3si.jpg" ></a> |
70
Immemorial OP 今天的开发版已经中工作设置的内容提供器的 authorities 属性被修改成程序包名后跟“.CarUiInstaller”了
它好了!!! |
71
gricn 2021-01-19 20:34:01 +08:00
@Immemorial 谢谢提醒,但是我之前已经将密码管理器切换成 Google 了,依旧无效。上一部小米两个月前切换自动填充 works,但现在这部不起作用。 受“访问手机账户”权限设置提醒,密码填充需要开启“后台弹出界面”权限
现在 ok 了,但是我已经因此把浏览器和密码填充迁到微软系了 谢谢~~ |
72
hmmabc 2021-01-26 21:56:41 +08:00
我是 K30,也被这个问题烦的不行!装安卓 10 的框架商店勉强能用,但 Gmail,云盘各种问题,不是无法同步邮件,就是刷新不出来文件,我甚至想想刷回 MIUI11 了。
小米的中低端机都没有通过谷歌认证,太难受了,人家 realme 同样千元机都能通过 Google 认证,自带框架。 |