配置 GMS Makefile

预加载设备时,您可以在 /system (ROM) 或 /data 分区上预装 GMS 中的 Google 应用(.apk 文件)。由于 Android 编译系统是模块化的,因此您只需放入二进制文件和 makefile 即可在细分版本中包含 GMS 应用。

添加 GMS 应用

按照下面的步骤操作,将 GMS 添加到您的设备中:

  1. 在 Android 根目录下创建 vendor/ 子目录。
  2. 下载和解压缩适用于您的 Android 版本的 GMS 软件包,并将其放入新建的 vendor/ 子目录中。解压后的结构类似于以下结构:
    vendor/google
         apps/
         frameworks/
         products/
         updatecmds/
  3. 要添加所有 Google 应用,请在给定设备的产品 makefile(例如 vendor/acme/products/mydevice.mk)中添加以下行:
  4.  $(call inherit-product, vendor/google/products/gms.mk)

    例如,Nexus 5 (hammerhead) 设备 makefile (device/lge/hammerhead/full_hammerhead.mk) 如下所示:

    # 从常用开放源代码产品配置沿用
    $(call inherit-product,$(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)

    PRODUCT_NAME := full_hammerhead
    PRODUCT_DEVICE := hammerhead
    PRODUCT_BRAND := Android
    PRODUCT_MODEL := AOSP on HammerHead
    PRODUCT_MANUFACTURER := LGE
    PRODUCT_RESTRICT_VENDOR_FILES := true

    $(call inherit-product, device/lge/hammerhead/device.mk)
    $(call inherit-product-if-exists, vendor/lge/hammerhead/device-vendor.mk)
    $(call inherit-product, vendor/google/products/gms.mk)

自定义 GMS

要自定义 GMS,请修改 vendor/google/products/gms.mk 中的 GMS makefile(包含在 GMS 软件包中)。makefile 包含强制性和可选的 GMS 产品包列表,以及 GMS 编译中使用的编译设置和资源叠加层。

使用 gms.mk 进行以下更改:

  • 添加或移除可选软件包。
  • 添加或移除软件包所需的 jar 文件库和其他资源。
  • 添加或移除与某些软件包关联的资源叠加层。

有关详情,请参阅自定义应用。

添加或移除软件包

要在编译中添加或移除软件包,请在 gms.mkconfiguration 文件的 PRODUCT_PACKAGES 列表中添加或移除产品包名称。例如:

# GMS optional application packages
PRODUCT_PACKAGES += \
AndroidForWork \
CalendarGoogle \
CloudPrint \
DeskC
lockGoogle \
EditorsDocs \
EditorsSheets \
EditorsSlides \
FaceLock \
GoogleCamera \
GoogleHome \
GoogleTTS \
Keep \
LatinImeGoogle \
NewsWeather \
TagGoogle \
talkback

从上面的列表中删除一行即可从设备上的 GMS 中排除相应的应用。

可用软件包

可用的 GMS 软件包位于 vendor/google/apps 中,其中包含每个 GMS 应用的子目录。子目录包含以下文件:

  • 相应软件包的 APK 文件集。其中包括适用于不同处理器架构 (ABI) 的不同 APK 文件,具体因应用和不同的屏幕分辨率而异。
  • 充当软件包的配置 makefile 的 Android.mk 文件。
  • 用于编译软件包的依赖项,例如共享库、资源叠加层或支持的 APK 文件。

从 Android 5.0 开始,每个 ABI 特定文件都包含在一个分发包中。Make 文件会根据设备定义选择正确的 ABI,并且设备系统映像仅包含设备的相关文件。

查找软件包

要查找每个应用的可用软件包,请查看该应用的 Android.mk 文件并搜索该文件中列出的 LOCAL_MODULES。Chrome 搜索示例:

/vendor/google$ cat Chrome/Android.mk | grep "LOCAL_MODULE "
LOCAL_MODULE := Chrome
LOCAL_MODULE := ChromeWithBrowser

结果显示有两个适用于 Chrome 的软件包:

  • Chrome。当 Chrome 是设备上加载的唯一浏览器时使用。
  • ChromeWithBrowser。在与 Chrome 一起加载其他浏览器时使用。

要确定每个应用所需的支持库,请查找针对每个 LOCAL_MODULE 列出的 LOCAL_REQUIRED_MODULES。例如,对于 Chrome 软件包:

LOCAL_REQUIRED_MODULES := BrowserProviderProxy PartnerBookmarksProvider

微信扫码打赏

作者: RESSRC

个人资源站

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据