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/

相关推荐
执明wa1 天前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder1 天前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农1 天前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
用户69371750013841 天前
从代码生产者到 AI 协作者:软件工程师的角色重构
android·前端·后端
GitLqr1 天前
别在 Flutter 的 main() 里乱锁屏幕方向,小心 iPad 分屏功能被你搞没了
android·flutter·ios
sg_knight1 天前
MySQL 存储过程详解:从入门到实战
android·数据库·mysql·database·dba·关系型数据库·db
爱笑鱼1 天前
Binder(四):ioctl(BINDER_WRITE_READ) 之后,事务怎样到达目标进程?
android
AFinalStone1 天前
Android 7系统休眠唤醒(二)开机全链路—BootROM到Launcher
android·电源管理·休眠唤醒
Mr YiRan1 天前
Android NDK开发之统计到未被回收的图片
android