-
众所周知,国内发布的手机基本上都不包含Google GMS服务,所以要使用Google原生的一些应用或是从GooglePlay下载国外的APP的话就必须刷GMS服务,本文记录了基于Android 9.0版本刷GMS包的全过程,供有需要的人参考!说明:下面步骤介绍的某些网站或资源需要FQ才能获取(你懂的...),此外,手机要能root。
android gms包
1. 从如下链接 Open GAPPS下载所需要的GMS包
关于各Variant差异的说明可以参考:https://jakting.com/archives/gapps-links-what.html
2. 下载好相应的包后(我这里下载的是aroma版本),请解压到个人电脑指定的路径下面(文件路径中的压缩包,也需要一并解压出来)。解压出来的文件目录大致如下:
其中Core路径下是GMS服务的一些核心APK,是我们能否使用GMS服务的基础。比如:
Core\gmscore-arm64\gmscore-arm64\nodpi\priv-app\PrebuiltGmsCorePi\PrebuiltGmsCorePi.apk
Core\gsfcore-all\gsfcore-all\nodpi\priv-app\GoogleServicesFramework\GoogleServicesFramework.apk
GApps路径下是Google的一些原生应用,在GMS服务安装好之后可以根据喜好自行安装即可。
3. 前面解压出来的文件通过上面的路径就可以看出,他们原本应该在系统中的路径是什么,比如前面的GoogleServicesFramework.apk应该在/system/priv-app/路径中,以此类推,有的配置文件、jar包等都可以通过解压出来的路径推断出其在系统中的路径。我这里将所有需要用到的资源整理如下:
priv-app路径内容一览:
4. 第3步中将解压出来的资源归类整理的目的是方便后续将这些APK等用adb脚本批量push到手机中、以达到刷入GMS服务的目的。所以,接下来我们就可以新建脚本将这些资源通过adb push到手机对应的路径中去,我这里编写的脚本主要内容如下(如第3步,整理的资源路径在D盘的gms文件夹下):
adb wait-for-device
adb root
adb remount
adb wait-for-device
echo "------------------- wtbee start push GMS --------------------"
adb push D:\gms\9.0\app\. /system/app/
adb push D:\gms\9.0\priv-app\. /system/priv-app/
adb push D:\gms\9.0\system\etc\default-permissions /system/etc/
adb push D:\gms\9.0\system\etc\permissions\. /system/etc/permissions/
adb push D:\gms\9.0\system\etc\preferred-apps\ /system/etc/
adb push D:\gms\9.0\system\etc\sysconfig\. /system/etc/sysconfig/
adb push D:\gms\9.0\system\framework\. /system/framework/
adb push D:\gms\9.0\system\lib64\. /system/lib64/
echo "------------------- wtbee push GMS done -------------------------"
5. 待脚本执行成功之后,重启手机并生效。此时,手机基本就具备了GMS服务。但是,Google为了确保装有 Google 应用的 Android 设备可以正常运行,设备必须符合以下条件才能获得 Google 认证:
装有获得 Google 许可的专属应用
通过了 Android 兼容性测试
所以,此时手机联网且能FQ的前提下,机器会提示进行Google GMS设备认证。如果你的设备无法认证,没关系、好在Google提供了自定义ROM用户设备注册的功能,可以在如下网站中输入GMS框架的Android ID来注册。
https://www.google.com/android/uncertified/
如何获得这个Android ID了? 有两种办法,一种是通过连接电脑后,使用 ADB 命令:
adb shell settings get secure android_id
另外一种方法是安装一个叫做 Device ID 的应用,这是由著名的 apk 下载服务商 Evozi 提供的应用。(注意,如果应用打开后没有显示GSF的ID,可以在第4步完毕后重启手机,并联网开启Google服务认证,过会时间后重启手机再次打开APK就可以看到。 )
说明,一定要将GSF ID转换为十进制去注册。有一个网站可以参考:https://www.rapidtables.com/convert/number/hex-to-decimal.html
6. 待设备注册完成后,过会时间再进行设备认证的话就可以成功了,此时会让你登录Google账号。到此,恭喜你!!!你的设备可以使用Google GMS 服务以及Google 原生应用了。
附录:
手机注册Android服务需要FQ,介绍一款VPN应用:
https://download.csdn.net/download/wtbee/10811482
Device ID APK:
https://download.csdn.net/download/wtbee/10811472
我实测可用的完整GMS包整理(内含使用说明):
https://download.csdn.net/download/wtbee/10811497
<svg aria-hidden="true" class="icon">
<use xlink:href="#csdnc-chevrondown"></use>
</svg>
</a>
</div>
</dd>
<div class="blog_list_b clearfix">
<p class="title">
<span>android gms包 </span><span> 相关内容</span>
</p>
<div class="tag_list">
<label>
<a href="https://www.csdn.net/gather_2a/MtTagg5sMzI2NC1ibG9n.html" class="tag" target="_blank">android 暴力反射</a>
</label>
<label>
<a href="https://www.csdn.net/gather_22/MtTagg5sNzU4NS1ibG9n.html" class="tag" target="_blank">android 类冲突</a>
</label>
<label>
<a href="https://www.csdn.net/gather_22/MtTagg5sOTgyNC1ibG9n.html" class="tag" target="_blank">android获取用户行为信息</a>
</label>
<label>
<a href="https://www.csdn.net/gather_20/MtTakgwsMDI0MS1ibG9n.html" class="tag" target="_blank">android异步回调处理</a>
</label>
<label>
<a href="https://www.csdn.net/gather_27/MtTakgwsMjc5MS1ibG9n.html" class="tag" target="_blank">android 文件删除保存</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2f/MtTakgwsMzA1NC1ibG9n.html" class="tag" target="_blank">android滑动按钮</a>
</label>
<label>
<a href="https://www.csdn.net/gather_26/MtTakgwsMzY3NC1ibG9n.html" class="tag" target="_blank">android 突出菜单</a>
</label>
<label>
<a href="https://www.csdn.net/gather_21/MtTakgwsNDE5MC1ibG9n.html" class="tag" target="_blank">android 文字颜色 点击</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2e/MtTakgwsNDUxNi1ibG9n.html" class="tag" target="_blank">android 原理 更新 热</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2e/MtTakgwsNTAxOC1ibG9n.html" class="tag" target="_blank">android 中间大两边小</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-MtjakgwsNDUtZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第二部</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-MtjaYgxsNDktZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第一部</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-Mtjakg0sNTMtZWR1.html" class="tag" target="_blank"> Windows C/C++ 与 逆向</a>
</label>
</div>
</div>
</div>
<div class="tag_blog_list_item clearfix">
<dt class="clearfix">
<div class="tag_blog_t">
<span class="blog_type">原</span>
Android 8.1 MTK平台 导入GMS包后安装的应用无法启动, GoogleDialerGo
在Android 8.1 的代码里面,导入GMS包后发现系统应用可以正常运动,但安装的三方应用直接 就是闪退,一直以为是GMS导致的问题。
添加GMS 包(GooglepackageInstaller里面有LOCAL_OVERRIDES_PACKAGES MtkPackageInstaller ), 后安装的应用无法启动,闪退
经过验证,发现是由于使用了google 的 GooglepackageInstaller,换成MtkPackageInstaller就可以了,根据GOOGLE 的要求,GooglepackageInstaller是mandatory的包。为什么使用GooglepackageInstaller安装应用会造成应用无法启动?
解决方法:
关闭这两个宏测试看下:
MTK_MOBILE_MANAGEMENT = no和MTK_PERMISSION_CONTROL = no。
这两个宏是mtk自己的权限管理。
安装了GMS后用的是google的,目前遇到的case会有冲突的情况,导致应用打不开。
所以需要关闭这两个宏。
因为安装了GMS后,是不需要使用MTK的权限管理的,所以关闭宏没有影响。
二,导入GoogleDialerGo 之后,拨号之后无法正常显示CallUI,
分析原因还是因为MTK把默认的Telecomm 从 packages\services 下移到了 vendor/mediatek/proprietary/packages/services 目录下去,导致GoogleDialerGo 里面的overlay 失效;
解决方法:修改GMS包 partner_gms\apps_go\GoogleDialerGo 目录 下的 overlay ,添加复制packages/services/Telecomm/res/values/config.xml,把文件夹名字改成下面这样, v endor/mediatek/proprietary/packages/services/Telecomm/res/values/config.xml
config.xml 内容修改后如下:
<resources> <!-- Package name for the default in-call UI and dialer [DO NOT TRANSLATE] --> <string name="ui_default_package" translatable="false">com.google.android.dialer</string>
<!-- Class name for the default main Dialer activity [DO NOT TRANSLATE] --> <string name="dialer_default_class" translatable="false">com.google.android.dialer.extensions.GoogleDialtactsActivity</string> <!-- Class name for the default incall activity [DO NOT TRANSLATE] --> <string name="incall_default_class" translatable="false">com.android.incallui.InCallServiceImpl</string>
</resources>
修改前内容:
<!-- Package name for the default in-call UI and dialer [DO NOT TRANSLATE] -->
<string name=“ui_default_package” translatable=“false”>com.android.dialer</string>
<!-- Class name for the default in-call UI Service [DO NOT TRANSLATE] --> <string name="incall_default_class" translatable="false">com.android.incallui.InCallServiceImpl</string> <!-- Class name for the default main dialer activity [DO NOT TRANSLATE] --> <string name="dialer_default_class" translatable="false">com.android.dialer.DialtactsActivity</string></pre><br><br><br> </div> <div class="hide_part" data-report-click="{"mod":"popu_799","strategy":"SOOPENSEARCH"}" style="display: none;"> <a href="javascript:void(0);" class="readmore_btn">展开阅读原文 <svg aria-hidden="true" class="icon"> <use xlink:href="#csdnc-chevrondown"></use> </svg> </a> </div> </dd> <div class="blog_list_b clearfix"> <p class="title"> <span>android gms包 </span><span> 相关内容</span> </p> <div class="tag_list"> <label> <a href="https://www.csdn.net/gather_2a/MtTagg5sMzI2NC1ibG9n.html" class="tag" target="_blank">android 暴力反射</a> </label> <label> <a href="https://www.csdn.net/gather_22/MtTagg5sNzU4NS1ibG9n.html" class="tag" target="_blank">android 类冲突</a> </label> <label> <a href="https://www.csdn.net/gather_22/MtTagg5sOTgyNC1ibG9n.html" class="tag" target="_blank">android获取用户行为信息</a> </label> <label> <a href="https://www.csdn.net/gather_20/MtTakgwsMDI0MS1ibG9n.html" class="tag" target="_blank">android异步回调处理</a> </label> <label> <a href="https://www.csdn.net/gather_27/MtTakgwsMjc5MS1ibG9n.html" class="tag" target="_blank">android 文件删除保存</a> </label> <label> <a href="https://www.csdn.net/gather_2f/MtTakgwsMzA1NC1ibG9n.html" class="tag" target="_blank">android滑动按钮</a> </label> <label> <a href="https://www.csdn.net/gather_26/MtTakgwsMzY3NC1ibG9n.html" class="tag" target="_blank">android 突出菜单</a> </label> <label> <a href="https://www.csdn.net/gather_21/MtTakgwsNDE5MC1ibG9n.html" class="tag" target="_blank">android 文字颜色 点击</a> </label> <label> <a href="https://www.csdn.net/gather_2e/MtTakgwsNDUxNi1ibG9n.html" class="tag" target="_blank">android 原理 更新 热</a> </label> <label> <a href="https://www.csdn.net/gather_2e/MtTakgwsNTAxOC1ibG9n.html" class="tag" target="_blank">android 中间大两边小</a> </label> <label> <a href="https://www.csdn.net/xuexi/kecheng-MtjakgwsNDUtZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第二部</a> </label> <label> <a href="https://www.csdn.net/xuexi/kecheng-MtjaYgxsNDktZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第一部</a> </label> <label> <a href="https://www.csdn.net/xuexi/kecheng-Mtjakg0sNTMtZWR1.html" class="tag" target="_blank"> Windows C/C++ 与 逆向</a> </label> </div> </div> </div> <div class="tag_blog_list_item clearfix"> <dt class="clearfix"> <div class="tag_blog_t"> <span class="blog_type">原</span>
GMS 包配置说明
\build\target\product\generic_no_telephony.mk
添加
$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk) --原有位置下面加下面这行
$(call inherit-product, vendor/google/products/gms.mk)
build\tools\buildinfo.sh
添加4个属性
L 、M版本 GMS包预制
Google为了简化GMS的预置流程,对Android源代码和GMS做了相应的处理
所以L版本GMS预置比较简单,只需要把GMS需要预置内容放置在
1.在alps/vendor/google/下创建Android.mk 文件
文件夹下(google文件夹需要自行创建)然后检查vendor/google/下是否存在Android.mk文件,若没有此Android.mk,请新建一个,并把以下内容拷贝进去:
ifdef BUILD_GMS
ifeq ($(strip $(BUILD_GMS)), yes)
include $(call all-subdir-makefiles)
endif
endif
2.检查vendor/google/以下两个文件夹apps/ 和 frameworks/
第一层目录下是否存在Android.mk
如果不存在,也各新建一个,将以下内容拷贝进去:
include $(call all-subdir-makefiles)
最后在build的时候带入"BUILD_GMS=yes",如:
source build/envsetup.sh && lunch full_<YourProjectName>-user && source ./mbldenv.sh && BUILD_GMS=yes make -j24
若提示找不到mbldenv.sh,则使用如下命令:
source build/envsetup.sh && lunch full_<YourProjectName>-user && BUILD_GMS=yes make -j24
注意,源代码的build文件中会有判断 BUILD_GMS 的值做不同build行为的语句,请不要修改,否则会造成GMS预置冲突或者预置不完整问题
KK版本GMS包预制方法
1.打开GMS编译开关
/mediatek/config/common/ProjectConfig.mkBUILD_GMS = yes
2.修改GMS预置条件
/build/target/product/common.mk
将以下内容(如果有出入,请以修改后为标准):
#--GMS feature-----ifeq ($(strip $(BUILD_GMS)), yes)
$(call inherit-product-if-exists, vendor/google/products/gms.mk)
PRODUCT_PROPERTY_OVERRIDES += \
>>>> ORIGINAL //ALPS_SW/FPB/KK1.MP1.FPB/alps/build/target/product/common.mk#1
==== THEIRS //ALPS_SW/FPB/KK1.MP1.FPB/alps/build/target/product/common.mk#8
ro.com.google.clientidbase=alps-$(TARGET_PRODUCT)-{country} \
ro.com.google.clientidbase.ms=alps-$(TARGET_PRODUCT)-{country} \
ro.com.google.clientidbase.yt=alps-$(TARGET_PRODUCT)-{country} \
ro.com.google.clientidbase.am=alps-$(TARGET_PRODUCT)-{country} \
ro.com.google.clientidbase.gmm=alps-$(TARGET_PRODUCT)-{country}
==== YOURS //ws_wcpadmin_3010_bj/ALPS_SW/MP/KK1.MP1/alps/build/target/product/common.mk
ro.com.google.clientidbase=alps-$(TARGET_PRODUCT)-{country} \
ro.com.google.clientidbase.ms=alps-$(TARGET_PRODUCT)-{country} \
ro.com.google.clientidbase.yt=alps-$(TARGET_PRODUCT)-{country} \
ro.com.google.clientidbase.am=alps-$(TARGET_PRODUCT)-{country} \
ro.com.google.clientidbase.gmm=alps-$(TARGET_PRODUCT)-{country}
<<<<
endif
修改为=>
#--GMS feature-----
ifeq ($(strip $(BUILD_GMS)), yes)
$(call inherit-product-if-exists, vendor/google/products/gms.mk)
PRODUCT_PROPERTY_OVERRIDES += \
ro.com.google.clientidbase=alps-$(TARGET_PRODUCT)-{country}
endif
ps: 以上内容(第2步骤)包含调用gms.mk,以及设置client id
如果贵司此项目不需要设置client id,请将其中的
PRODUCT_PROPERTY_OVERRIDES += \
ro.com.google.clientidbase=alps-$(TARGET_PRODUCT)-{country}
去掉;
如果需要预置,则将“alps-$(TARGET_PRODUCT)”修改为对应的client id值;
字段"-{country}"的作用是,根据插入的sim卡自适应显示对应的国家码,如果此项目不需要client id根据mcc自适应,则将字段"-{country}"去掉即可
3. webview实现冲突解决方案
由于Google对GMS的WebView检测策略的改变,所以如果预置GMS必须预置其中的WebViewGoogle,这样将会把默认的webview覆盖掉具体预置操作方法请参考[FAQ11120] KK版本GMS包Chromium相关文件合入注意事项_FAQ
4. 如果预置以下所列GMS应用,需要给它们获取系统权限
ConfigUpdater.apk
GmsCore.apk
GoogleBackupTransport.apk
GoogleFeedback.apk
GoogleLoginService.apk
GoogleOneTimeInitializer.apk
GooglePartnerSetup.apk
GoogleServicesFramework.apk
Phonesky.apk
SetupWizard.apk
Velvet.apk
请在/vendor/google/apps/Android.mk每一个应用对应的build语句添加:
LOCAL_PRIVILEGED_MODULE := true
5. 如果预置GMS中的Videos.apk,则将/mediatek/packages/apps/VideoPlayer/Android.mk删除
6.lib库重命名
frameworks/support/renderscript/v8/rs_support/Android.mk: libRSSupport -> libRSSupport_old (2 places)frameworks/support/renderscript/v8/jni/Android.mk: librsjni -> librsjni_old and libRSSupport -> libRSSupport_old (2 places)
libnativehelper/Android.mk: libnativehelper_compat -> libnativehelper_compat_old
ps: 第6步骤的修改,如果您发现在原生code中,这些库的修改已经包含在
ifeq ($(strip $(BUILD_GMS)), yes)
endif
中,可以不再修改
7. 由于兼容性问题,请不要预置GoogleCamera.apk和GalleryGoogle.apk:
7.1 将\google\libs\Android.mk中的以下内容注释掉:
include $(CLEAR_VARS)LOCAL_PREBUILT_LIBS := libgcam.so \
libgcam_swig_jni.so \
libjni_eglfence.so \
libjni_filtershow_filters.so \
libjni_mosaic.so \
libjni_tinyplanet.so \
libjpeg.so \
liblightcycle.so \
libnativehelper_compat.so
LOCAL_MODULE_TAGS := optional
include $(BUILD_MULTI_PREBUILT)
7.2 将\google\apps\Android.mk中的以下内容注释掉:
include $(CLEAR_VARS)LOCAL_MODULE := GoogleCamera
LOCAL_MODULE_TAGS := optional
LOCAL_OVERRIDES_PACKAGES := Camera2
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_REQUIRED_MODULES := libgcam \
libgcam_swig_jni \
libjni_eglfence \
libjni_filtershow_filters \
libjni_mosaic \
libjni_tinyplanet \
libjpeg \
liblightcycle \
libnativehelper_compat
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
以及
include $(CLEAR_VARS)
LOCAL_MODULE := GalleryGoogle
LOCAL_MODULE_TAGS := optional
LOCAL_OVERRIDES_PACKAGES := Gallery2
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
7.3 将\google\products\gms.mk
PRODUCT_PACKAGES += \下面的# GoogleCamera \
# GalleryGoogle \
注释掉
ps: 以上内容(第7步骤)是把GoogleCamera、GalleryGoogle以及相关的lib库移除,
<svg aria-hidden="true" class="icon">
<use xlink:href="#csdnc-chevrondown"></use>
</svg>
</a>
</div>
</dd>
<div class="blog_list_b clearfix">
<p class="title">
<span>android gms包 </span><span> 相关内容</span>
</p>
<div class="tag_list">
<label>
<a href="https://www.csdn.net/gather_2a/MtTagg5sMzI2NC1ibG9n.html" class="tag" target="_blank">android 暴力反射</a>
</label>
<label>
<a href="https://www.csdn.net/gather_22/MtTagg5sNzU4NS1ibG9n.html" class="tag" target="_blank">android 类冲突</a>
</label>
<label>
<a href="https://www.csdn.net/gather_22/MtTagg5sOTgyNC1ibG9n.html" class="tag" target="_blank">android获取用户行为信息</a>
</label>
<label>
<a href="https://www.csdn.net/gather_20/MtTakgwsMDI0MS1ibG9n.html" class="tag" target="_blank">android异步回调处理</a>
</label>
<label>
<a href="https://www.csdn.net/gather_27/MtTakgwsMjc5MS1ibG9n.html" class="tag" target="_blank">android 文件删除保存</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2f/MtTakgwsMzA1NC1ibG9n.html" class="tag" target="_blank">android滑动按钮</a>
</label>
<label>
<a href="https://www.csdn.net/gather_26/MtTakgwsMzY3NC1ibG9n.html" class="tag" target="_blank">android 突出菜单</a>
</label>
<label>
<a href="https://www.csdn.net/gather_21/MtTakgwsNDE5MC1ibG9n.html" class="tag" target="_blank">android 文字颜色 点击</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2e/MtTakgwsNDUxNi1ibG9n.html" class="tag" target="_blank">android 原理 更新 热</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2e/MtTakgwsNTAxOC1ibG9n.html" class="tag" target="_blank">android 中间大两边小</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-MtjakgwsNDUtZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第二部</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-MtjaYgxsNDktZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第一部</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-Mtjakg0sNTMtZWR1.html" class="tag" target="_blank"> Windows C/C++ 与 逆向</a>
</label>
</div>
</div>
</div>
<div class="tag_blog_list_item clearfix">
<dt class="clearfix">
<div class="tag_blog_t">
<span class="blog_type">原</span>
android 添加gms包-7.0
1.打包步骤
先将解压的partner_gms复制粘贴到vender下面,然后在
device\xxx\xxx\full_xxx_.mk中添加,
#xiaozheng add
BUILD_GMS := yes
注:实际是使device\mediatek\common\device.mk中的
ifdef BUILD_GMS
ifeq ($(strip $(BUILD_GMS)), yes)
$(call inherit-product-if-exists, vendor/google/partner_gms/gms.mk)生效
2.编译报错
vendor/google/apps/WebViewGoogle/Android.mk:21: *** ro.product.first_api_level property is undefined
需要在
vendor\partner_gms\products\gms.mk中添加
#xiaozheng add
PRODUCT_PROPERTY_OVERRIDES += <br>
ro.product.first_api_level=24 <br>
注:关联gms.mk文件的语句记得跟实际路径想对应,才能关联上,别搞成了vendor/google/products/gms.mk
device\mediatek\common\device.mk
$(call inherit-product-if-exists, vendor/partner_gms/products/gms.mk)
3.编译报错
ninja: error: ‘vendor/partner_gms/etc/preferred-apps/google.xml’, needed by ‘out/target/product/xxx/system/etc/preferred-apps/google.xml’, missing and no known rule to make it
make: *** [ninja_wrapper] 错误 1
vender下面的文件夹命名不能按以前的google了,应该按实际的路径来写为partner_gms
4.开机导航跳不过去,修改vendor/partner_gms/products/gms.mk里面的属性值any改成OPTIONAL
PRODUCT_PROPERTY_OVERRIDES += <br>
ro.product.first_api_level=24 <br>
ro.setupwizard.require_network=OPTIONAL <br>
ro.setupwizard.mode=OPTIONAL <br>
ro.com.google.gmsversion=7.0_r7
</div>
<div class="hide_part" data-report-click="{"mod":"popu_799","strategy":"SOOPENSEARCH"}" style="display: none;">
<a href="javascript:void(0);" class="readmore_btn">展开阅读原文
<svg aria-hidden="true" class="icon">
<use xlink:href="#csdnc-chevrondown"></use>
</svg>
</a>
</div>
</dd>
<div class="blog_list_b clearfix">
<p class="title">
<span>android gms包 </span><span> 相关内容</span>
</p>
<div class="tag_list">
<label>
<a href="https://www.csdn.net/gather_2a/MtTagg5sMzI2NC1ibG9n.html" class="tag" target="_blank">android 暴力反射</a>
</label>
<label>
<a href="https://www.csdn.net/gather_22/MtTagg5sNzU4NS1ibG9n.html" class="tag" target="_blank">android 类冲突</a>
</label>
<label>
<a href="https://www.csdn.net/gather_22/MtTagg5sOTgyNC1ibG9n.html" class="tag" target="_blank">android获取用户行为信息</a>
</label>
<label>
<a href="https://www.csdn.net/gather_20/MtTakgwsMDI0MS1ibG9n.html" class="tag" target="_blank">android异步回调处理</a>
</label>
<label>
<a href="https://www.csdn.net/gather_27/MtTakgwsMjc5MS1ibG9n.html" class="tag" target="_blank">android 文件删除保存</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2f/MtTakgwsMzA1NC1ibG9n.html" class="tag" target="_blank">android滑动按钮</a>
</label>
<label>
<a href="https://www.csdn.net/gather_26/MtTakgwsMzY3NC1ibG9n.html" class="tag" target="_blank">android 突出菜单</a>
</label>
<label>
<a href="https://www.csdn.net/gather_21/MtTakgwsNDE5MC1ibG9n.html" class="tag" target="_blank">android 文字颜色 点击</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2e/MtTakgwsNDUxNi1ibG9n.html" class="tag" target="_blank">android 原理 更新 热</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2e/MtTakgwsNTAxOC1ibG9n.html" class="tag" target="_blank">android 中间大两边小</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-MtjakgwsNDUtZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第二部</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-MtjaYgxsNDktZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第一部</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-Mtjakg0sNTMtZWR1.html" class="tag" target="_blank"> Windows C/C++ 与 逆向</a>
</label>
</div>
</div>
</div>
<div class="tag_blog_list_item clearfix">
<dt class="clearfix">
<div class="tag_blog_t">
<span class="blog_type">原</span>
Android 增加GMS包后提示权限问题
问题:Android 7.1.1 增加GMS包后提示“权限被拒绝。您可以依次选择'设置'>'应用'来更改权限。
该问题是GMS包里面的APK和系统应用冲突
例如:MtkCalendar 和 CalendarGoogle
Chrome 和 MtkBrowser
在GMS包的相应的APK中的Android.mk文件修改:LOCAL_OVERRIDES_PACKAGES := MtkBrowser Browser2
<svg aria-hidden="true" class="icon">
<use xlink:href="#csdnc-chevrondown"></use>
</svg>
</a>
</div>
</dd>
<div class="blog_list_b clearfix">
<p class="title">
<span>android gms包 </span><span> 相关内容</span>
</p>
<div class="tag_list">
<label>
<a href="https://www.csdn.net/gather_2a/MtTagg5sMzI2NC1ibG9n.html" class="tag" target="_blank">android 暴力反射</a>
</label>
<label>
<a href="https://www.csdn.net/gather_22/MtTagg5sNzU4NS1ibG9n.html" class="tag" target="_blank">android 类冲突</a>
</label>
<label>
<a href="https://www.csdn.net/gather_22/MtTagg5sOTgyNC1ibG9n.html" class="tag" target="_blank">android获取用户行为信息</a>
</label>
<label>
<a href="https://www.csdn.net/gather_20/MtTakgwsMDI0MS1ibG9n.html" class="tag" target="_blank">android异步回调处理</a>
</label>
<label>
<a href="https://www.csdn.net/gather_27/MtTakgwsMjc5MS1ibG9n.html" class="tag" target="_blank">android 文件删除保存</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2f/MtTakgwsMzA1NC1ibG9n.html" class="tag" target="_blank">android滑动按钮</a>
</label>
<label>
<a href="https://www.csdn.net/gather_26/MtTakgwsMzY3NC1ibG9n.html" class="tag" target="_blank">android 突出菜单</a>
</label>
<label>
<a href="https://www.csdn.net/gather_21/MtTakgwsNDE5MC1ibG9n.html" class="tag" target="_blank">android 文字颜色 点击</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2e/MtTakgwsNDUxNi1ibG9n.html" class="tag" target="_blank">android 原理 更新 热</a>
</label>
<label>
<a href="https://www.csdn.net/gather_2e/MtTakgwsNTAxOC1ibG9n.html" class="tag" target="_blank">android 中间大两边小</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-MtjakgwsNDUtZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第二部</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-MtjaYgxsNDktZWR1.html" class="tag" target="_blank"> 使用WTL进行Windows桌面应用开发-第一部</a>
</label>
<label>
<a href="https://www.csdn.net/xuexi/kecheng-Mtjakg0sNTMtZWR1.html" class="tag" target="_blank"> Windows C/C++ 与 逆向</a>
</label>
</div>
</div>
</div>
</dl>
<dl class="tag_blog_b_list">
<dd class="list_item clearfix">
<div class="title">
<p class="title_l"><a href="https://blog.csdn.net/qq_41192631/article/details/106273725">Android系统开发:GMS包移植</a>
</p>
<p class="title_r">阅读数 <span>65</span></p>
</div>
<div class="detail">
<p class="detail_l"><a href="https://blog.csdn.net/qq_41192631/article/details/106273725" <="" a="">
Android系统开发:GMS包移植首先,我们拿到一份完整的GMS包应该是如下图所示:简单的介绍一个每一个目录的作用1)apps以及apps_go : 这里面就是google释放的apk资源文件,其中go版本适配低内存设备的apk.2)etc: 这里面就是Google 的一些权限申明文件,在日常维护gms更新时,经常会出现应用包权限的改动,我们跟着改,并做好记录即可。3)frameworks:这里面一般就是一些jar包,目的是将必须的jar包编译到system系统中,可以让一些apk正常使用,日 </a></p><a href="https://blog.csdn.net/qq_41192631/article/details/106273725" <="" a="">
<div class="detail_r">
<span>博文</span>
<span class="source_user">来自: <span class="username">qq_41192631</span> </span>
</div>
</a></div><a href="https://blog.csdn.net/qq_41192631/article/details/106273725" <="" a="">
</a></dd><a href="https://blog.csdn.net/qq_41192631/article/details/106273725" <="" a="">
</a><dd class="list_item clearfix"><a href="https://blog.csdn.net/qq_41192631/article/details/106273725" <="" a="">
</a><div class="title"><a href="https://blog.csdn.net/qq_41192631/article/details/106273725" <="" a="">
</a><p class="title_l"><a href="https://blog.csdn.net/qq_41192631/article/details/106273725" <="" a=""></a><a href="https://blog.csdn.net/xuann/article/details/103700538">android gms集成方法</a>
</p>
<p class="title_r">阅读数 <span>330</span></p>
</div>
<div class="detail">
<p class="detail_l"><a href="https://blog.csdn.net/xuann/article/details/103700538" <="" a="">
gms包集成步骤:(1) 需要下载对应gms,国内需要通过VPN下载。下载后解压,文件目录:partner_gms。下载时,最好核对一下匹配的android版本。(2)依照路径打开gms.mk/gms_go.mk,如:partner_gms\products\gms.mk。确认需要将GMS集成的代码位置,例如: # GMS home folder location ... </a></p><a href="https://blog.csdn.net/xuann/article/details/103700538" <="" a="">
<div class="detail_r">
<span>博文</span>
<span class="source_user">来自: <span class="username">xuann</span> </span>
</div>
</a></div><a href="https://blog.csdn.net/xuann/article/details/103700538" <="" a="">
</a></dd><a href="https://blog.csdn.net/xuann/article/details/103700538" <="" a="">
</a><dd class="list_item clearfix"><a href="https://blog.csdn.net/xuann/article/details/103700538" <="" a="">
</a><div class="title"><a href="https://blog.csdn.net/xuann/article/details/103700538" <="" a="">
</a><p class="title_l"><a href="https://blog.csdn.net/xuann/article/details/103700538" <="" a=""></a><a href="https://blog.csdn.net/nei504293736/article/details/51779490">android google GMS服务包安装</a>
</p>
<p class="title_r">阅读数 <span>4637</span></p>
</div>
<div class="detail">
<p class="detail_l"><a href="https://blog.csdn.net/nei504293736/article/details/51779490" <="" a="">
GMS: google mobile service 要想使用google服务,必须要安装google mobile service,也就是通常所说的GMS包,网上有很多做好了的GMS包,可以通过recovery的方式刷进去,不过大多数都是别人做好的,有些功能并不是我们想要的,所以我们可以自己做一个gms包,但是这里所说的并不是用recovery方式刷进去,而是直接使用R... </a></p><a href="https://blog.csdn.net/nei504293736/article/details/51779490" <="" a="">
<div class="detail_r">
<span>博文</span>
<span class="source_user">来自: <span class="username">nei504293736</span> </span>
</div>
</a></div><a href="https://blog.csdn.net/nei504293736/article/details/51779490" <="" a="">
</a></dd><a href="https://blog.csdn.net/nei504293736/article/details/51779490" <="" a="">
</a><dd class="list_item clearfix"><a href="https://blog.csdn.net/nei504293736/article/details/51779490" <="" a="">
</a><div class="title"><a href="https://blog.csdn.net/nei504293736/article/details/51779490" <="" a="">
</a><p class="title_l"><a href="https://blog.csdn.net/nei504293736/article/details/51779490" <="" a=""></a><a href="https://blog.csdn.net/qq_32390877/article/details/80797182">Android 7.1 预置GMS包</a>
</p>
<p class="title_r">阅读数 <span>1019</span></p>
</div>
<div class="detail">
<p class="detail_l"><a href="https://blog.csdn.net/qq_32390877/article/details/80797182" <="" a="">
1.下载需要的Gms包;https://download.csdn.net/download/qq_32390877/104993292.在Android源码的device/产品名称/产品型号/device.mk末尾中,加入以下语句GMS_SUPPORT=yesifeq ($(strip $(GMS_SUPPORT)), yes)$(call inherit-product-if-ex... </a></p><a href="https://blog.csdn.net/qq_32390877/article/details/80797182" <="" a="">
<div class="detail_r">
<span>博文</span>
<span class="source_user">来自: <span class="username">qq_32390877</span> </span>
</div>
</a></div><a href="https://blog.csdn.net/qq_32390877/article/details/80797182" <="" a="">
</a></dd><a href="https://blog.csdn.net/qq_32390877/article/details/80797182" <="" a="">
</a><dd class="list_item clearfix"><a href="https://blog.csdn.net/qq_32390877/article/details/80797182" <="" a="">
</a><div class="title"><a href="https://blog.csdn.net/qq_32390877/article/details/80797182" <="" a="">
</a><p class="title_l"><a href="https://blog.csdn.net/qq_32390877/article/details/80797182" <="" a=""></a><a href="https://blog.csdn.net/u010689853/article/details/106548138">android 8.0 GMS 包移植过程回顾</a>
</p>
<p class="title_r">阅读数 <span>82</span></p>
</div>
<div class="detail">
<p class="detail_l"><a href="https://blog.csdn.net/u010689853/article/details/106548138" <="" a="">
谷歌 源文件与给的文件是否有冲突 GMS 包一定要删除 以前的GMS包加入google应用----xxxx : /xxxx-Android8.0/vendor/partner_gmsxxxx : /xxxx-Android8.0/vendor/partner_gms/etcxxxx : /xxxx-Android8.0/vendor/partner_gms/etc/permissionsxxxx : /xxxx-Android8.0/vendor/partner_gms/etc/permis. </a></p><a href="https://blog.csdn.net/u010689853/article/details/106548138" <="" a="">
<div class="detail_r">
<span>博文</span>
<span class="source_user">来自: <span class="username">u010689853</span> </span>
</div>
</a></div><a href="https://blog.csdn.net/u010689853/article/details/106548138" <="" a="">
</a></dd><a href="https://blog.csdn.net/u010689853/article/details/106548138" <="" a="">
</a><div class="tag_list_return_btn"><a href="https://blog.csdn.net/u010689853/article/details/106548138" <="" a="">
<span>没有更多推荐了,</span></a><a href="" class="return_link">返回首页</a>
</div>
</dl>
</main>