AOSP (Android11) 集成Google GMS三件套

最近项目需求要把Google GMS三件套集成到AOSP中

但是AOSP 开源代码没有自带Google Play应用商店, 网上查询的最简单的方式是直接在repo对应的manifest文件中配置文件。但是我们的项目中做了阉割,没有repo,只能通过apk文件的预装方式来集成。通过查询,有通过 OpenGApp的方式来集成.

复制代码
参考:  https://github.com/opengapps/aosp_build

也可以在这里直接下载 GMS套件全部

我的需求只需要集成三件套(Google服务框架、Google play商店和Google Play服务), 能从Google应用市场下载安装应用即可.

如下是对应的文件目录结构

复制代码
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := GooglePlayService
LOCAL_PACKAGE_NAME := com.google.android.gms
LOCAL_SYSTEM_EXT_MODULE := true
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_TAGS := optional
LOCAL_PRIVATE_PLATFORM_APIS := false
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := ${LOCAL_MODULE}.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := GooglePlayStore
LOCAL_PACKAGE_NAME := com.android.vending
LOCAL_SYSTEM_EXT_MODULE := true
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_TAGS := optional
LOCAL_PRIVATE_PLATFORM_APIS := false
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := ${LOCAL_MODULE}.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := GoogleServiceFramework
LOCAL_PACKAGE_NAME := com.google.android.gsf
LOCAL_SYSTEM_EXT_MODULE := true
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_TAGS := optional
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := ${LOCAL_MODULE}.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)

把对应的apk文件和Android.mk文件放到一个文件夹内,并在文件夹对应的上级目录中找到类似如下的Android.mk文件

复制代码
PRODUCT_PACKAGES += \
    Launcher \
    GooglePlayService \
    GooglePlayStore \
    GoogleServiceFramework

添加完以上代码后记得需要把对应的权限配置一下,同样是在上级目录的Android.mk文件中添加

复制代码
# google
PRODUCT_COPY_FILES += \
    vendor/google/GMS/google.xml:$(TARGET_COPY_OUT_SYSTEM)/system_ext/etc/sysconfig/google.xml \
    vendor/google/GMS/google_build.xml:$(TARGET_COPY_OUT_SYSTEM)/system_ext/etc/sysconfig/google_build.xml \
    vendor/google/GMS/google-hiddenapi-package-whitelist.xml:$(TARGET_COPY_OUT_SYSTEM)/system_ext/etc/sysconfig/google-hiddenapi-package-whitelist.xml \
    vendor/google/GMS/privapp-permissions-google-p.xml:$(TARGET_COPY_OUT_SYSTEM)/system_ext/etc/permissions/privapp-permissions-google-p.xml \
    vendor/google/GMS/privapp-permissions-google-se.xml:$(TARGET_COPY_OUT_SYSTEM)/system_ext/etc/permissions/privapp-permissions-google-se.xml

需要的文件资源我已经放到文章顶部了

最后感谢

https://wenku.csdn.net/doc/3yh4iajkuz

https://www.huigll.com/android14-tangorpro-package-gms/

相关推荐
Kapaseker10 分钟前
四大组件齐上阵,轻松拿捏实习生
android·kotlin
00后程序员张11 分钟前
IPA 混淆技术全解,从成品包结构出发的 iOS 应用安全实践与工具组合
android·安全·ios·小程序·uni-app·cocoa·iphone
Just_Paranoid11 分钟前
【Android UI】Android Drawable XML 标签解析
android·ui·vector·drawable·shape·selector
都是蠢货17 分钟前
mysql中null是什么意思?
android·数据库·mysql
Just_Paranoid22 分钟前
【Android UI】Android 创建渐变背景 Drawable
android·ui·drawable·shape·gradient
千里马学框架24 分钟前
AI豆包手机权限文章补充:Mainfest中某个权限的protectionLevel具体是如何被系统定义的?
android·智能手机·framework·权限·protectionlevel
鹏多多28 分钟前
flutter使用package_info_plus库获取应用信息的教程
android·前端·flutter
走在路上的菜鸟35 分钟前
Android学Dart学习笔记第十五节 类
android·笔记·学习·flutter
2501_9160088938 分钟前
IOScer 证书到底是什么和怎么使用的完整说明
android·ios·小程序·https·uni-app·iphone·webview