Android Google MADA

Google为定义和主导Android生态系统和发展方向,主要通过四种协议进行实现。主要如下:

  • MADA协议:主要针对手机平板移动设备,满足手持或平板设备类型的所有CDD要求,屏幕尺寸在3.3英寸-18英寸,且必须带电池以及触摸屏
  • EDLA协议:EDLA协议是谷歌最近几年推出的协议,可以理解为MADA协议之外的设备的补充,设备可以不带电池,且屏幕尺寸可以最大到70甚至100英寸,也就是说,设备不带电池,或者屏幕尺寸超过18英寸只能使用EDLA协议去过认证
  • GAS协议:Google Automotive Services,这个协议见的比较少,是在车机设备申请GMS认证所需要的协议
  • TATA协议:电视盒子电视机类产品。以上两个协议的产品,基本上都可以使用EDLA协议去过认证

Google MADA 全称是 Mobile Application Distribution Agreement ,中文叫移动应用软件分发协议。

为什么要签MADA? Android系统本身是开源免费的,但Google Play、YouTube、Gmail、Google Maps等GMS服务是私有的,厂商想用这些服务,就必须签MADA协议。

1、MADA的核心需求

主要就是对GMS包的强制安装,GMS主要有如下一些核心应用:

Google Search、Google Chrome、YouTube、

Google Maps、Gmail、Google Drive、

Google Play Store、Google Play Music、

Google Play Movies、Hangouts、Google Photos

除了集成GMS包之外,还有一些额外的需求,例如:

要求 说明
全量预装 要装就装全套,不能只选几个
首屏放置 Google Search、Google Play必须在首屏
默认搜索引擎 Google Search必须是默认搜索引擎
位置限制 其他Google App不能超过一级菜单

当然实现这些需求之后往往还不够,Google搞了一套GMS认证的机制来对这些需求的检验,这套机制主要流程如下:

  • 签署MADA协议(前提条件)
  • 准备样机,满足CDD要求
  • 通过CTS/GTS/VTS等测试
  • 提交测试报告给Google审核
  • 获得GMS授权

2、MADA地区差异化需求

根据海外区域不同法规的要求,MADA协议的消费电子产品设备,主要分为如下几个区域单独进行送测:EEA欧盟地区,RU俄罗斯,TR土耳其,JP日本,US美国,ROW除上之外的地区。

1)EEA

欧盟地区有签署DMA法规要求,Google原文如下:

[EEA-5.1-002] If an EEA V2 Build preloads the Google app (or the Google Go app for Android Go devices), the build MUST implement the choice screen according to the guidelines below:

  • The user is required to choose one search provider from the choice screen during setup. The effect of a user selecting a search provider from the choice screen is to:

    1. Set the search provider in a home screen search box to the selected provider.
    2. Set the default search provider in Chrome (if installed) to the selected provider.
    3. Install the search app of the selected provider (if not already installed).
  • The software build MUST adhere to the following out-of-box setup UX requirements:

    • The choice screen MUST be the Google-provided one from the Search Engine Selector app (com.google.android.apps.setupwizard.searchselector).
    • The choice screen MUST NOT be skipped if network connectivity is available.
    • The choice screen MUST be presented to the user, immediately after the Google services screen is presented.

EEA Builds Search Engine Selector app

[EEA-5.1-003] For EEA builds, the users:

  • MUST keep Search Engine Selector app enabled.

  • MUST NOT be able to disable this app.

    • For example, it can be done by updating getKeepEnabledPackages method in packages/apps/Settings/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java to return the package name of Search Engine Selector.
  • MUST be able to see notifications from the Search Engine Selector app out of the box.

    • On DEVICEs running Android 13 or higher, it MUST be done by overriding the value of config_defaultSearchSelectorPackageName framework resource overlay with the package name of the Search Engine Selector app.

Consistency of product type

[EEA-5.1-004] An EEA product type is determined by the type of its Letter Upgrade Release (LR) build. After it's publicly launched, the partners:

  • MUST NOT change the product type by releasing a different type of Maintenance Release (MR) build.

DMA builds configuration for Choice Screen

A DMA Product, if it preloads the Chrome app or the Google app (or the Google Go app for Android Go devices), then it:

[EEA-5.1-005] MUST implement the DMA choice screen by:

  • Following all EEA builds configuration V2 requirements and the EEA Integration Guide.
  • Preloading the latest release of the following GMS apps in the June 2024 GMS release for IR/LR/MR builds submitted for approval on August 7, 2024 or later:
    • SetupWizard (com.google.android.setupwizard) 234.631301522 or higher
    • SearchSelector (com.google.android.apps.setupwizard.searchselector) 1.34.639843580 or higher
    • Phonesky (com.android.vending) 41.1.19 or higher
    • Google Search (com.google.android.googlequicksearchbox) 15.22.32 or higher
    • Chrome (com.android.chrome) 126.0.6478.71 or higher if it licenses Chrome
    • Preloading the latest release of the following GMS apps for IR builds submitted for approval before August 7, 2024 :
      • SetupWizard (com.google.android.setupwizard) 234.590027662 or higher
      • SearchSelector (com.google.android.apps.setupwizard.searchselector) 1.34.595858019 or higher.
      • Phonesky (com.android.vending) 38.8.31 or higher
      • Chrome (com.android.chrome) 120.0.6099.193 or higher if it licenses Chrome
    • Integrating the reference Setup Wizard scripts included in the latest release of GMS bundle (partner_gms/apps/GmsSampleIntegration/res/raw/*.xml).
      • The OEM customization of these scripts MUST NOT disrupt the UX and placement of the DMA Choice Screen.

See below for the latest UX of the DMA Choice Screen, which is supported from the June 2024 or higher releases.

See below for the UX of the DMA Choice Screen, if the device is built with the May 2024 or earlier GMS releases.

A DMA Product(非EEA地区测试DMA需要申请白名单):

  • [EEA-5.1-006] MUST adhere to the following requirements:

    • OEM customization of Setup Wizard scripts MUST NOT alter the UX and placement of the DMA Choice Screen.
    • OEM partners MUST NOT implement alternative Choice Screens in SUW, which may change the choice the user made in the DMA Choice Screen.
    • If the preloaded system launcher implements a fixed-placement search widget that doesn't provide full app widget controls (for example, resizing, relocating, or removing), then it MUST provide users with a separate setting to disable or select the default search engine for the widget.

The figure shows an example of an OEM setting that disables the fixed search widget on the hotseat:

2)IN

IN地区之前需要单独送测,但是最新版本可以放在ROW中,在印度市场可以自动进行激活,Google原文相关法规要求:

[IN-5.4-001] Google has delivered a GMS package that supports the implementation of the Default Search Engine (DSE) Choice Screen on GMS devices. Starting June 20, 2023, new PRODUCTs:

  • MUST implement the DSE Choice Screen to get an approval for sale in the countries if they include India. Otherwise, they MUST NOT be shipped into India for sale.

The software builds implementing the DSE Choice Screen for countries including India:

  • [IN-5.4-002] MUST declare the feature flag com.google.android.feature.DSE_CHOICE_SCREEN.

  • [IN-5.4-003] MUST preload the Search Engine Selector app, and keep it force-enabled.

    • For example, this can be done by updating the getKeepEnabledPackages method in packages/apps/Settings/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java to return the package name of Search Engine Selector.
  • [IN-5.4-004] MUST adhere to the following out-of-box setup UX requirements for the Choice Screen:

    • MUST use the Google-provided Choice Screen from the Search Engine Selector app.
    • MUST NOT skip Choice Screen if network connectivity is available.
    • MUST present Choice Screen to the user, immediately after the Google services screen is presented.
  • [IN-5.4-005] If the Choice Screen is skipped during initial setup, then the Deferred Setup Wizard implementation:

    • MUST trigger the deferred setup scenario.
    • MUST post a persistent notification until the user selects a DSE from the Choice Screen in the deferred setup.
  • [IN-5.4-006] MUST preload the apps in the following table to the minimum required version or higher:

    App Package name Minimum required version
    Search Engine Selector com.google.android.apps.setupwizard.searchselector 1.33.508543999 or higher
    Chrome com.android.chrome 110.0.5481.153 or higher
    Google or Google Go com.google.android.googlequicksearchbox 14.8.11 or higher
    Google or Google Go com.google.android.apps.searchlite 3.70 or higher
  • [IN-5.4-007] MUST override the value of config_defaultSearchSelectorPackageName framework resource overlay with the package name of the Search Engine Selector app.

3)RU

RU市场就相对来说比较简单了,Google原文如下:

  • RU v1 build configuration : A RU v1 build MUST meet all standard GMS requirements except for the placement of the Google search widget, and follow the RU-specific configurations below.
    • The RU feature string (com.google.android.feature.RU) must be defined.
    • The Chrome search widget must be placed on the default home screen in place of the Google search widget.
    • Any other Google search widget must not be placed on the default home screen.
    • The version of the preloaded Chrome app must be equal to or greater than 60.0.
  • RU v2 build configuration: A RU v2 build MUST meet all RU v1 build requirements plus its version of preloaded Chrome app must be equal to or greater than 103.0.
  • After August 11 2022, all new PRODUCTs, that are going through their first build approval and intended for shipping to Russia and Belarus, must be approved in the RU v2 build configuration. That is, Google will stop approving new PRODUCTs that do not meet the RU v2 build configuration.
  • RU v3 build configuration: A RU v3 build MUST meet all RU v1 build requirements plus its version of preloaded Chrome app MUST be equal to or greater than 124.0.6367.179.
  • After June 27 2024, all new PRODUCTs, that are going through their first build approval and intended for shipping to Russia, Belarus, and Kazakhstan, MUST be approved in the RU v3 build configuration. Google will stop approving new PRODUCTs that don't meet the RU v3 build configuration.

[RU-6.3-003] The Russia builds:

  • MUST place the Chrome search widget on the default home screen in place of the Google search widget.
  • MUST NOT place any other Google search widget on the default home screen.

4)TR

GMS Turkish Builds Configuration Requirements

[TR-5.3-002] The Turkish builds MUST meet the following configuration requirements:

  • MUST have the software build for Turkish Product ("Turkish Build") comply with all standard GMS requirements except for placement of Google search widget on the default home screen or preload of Google's WebView library.

  • MUST declare declare the feature flag com.google.android.feature.TR_DEVICE for every Turkish build.

  • MUST NOT use a combination of BRAND, DEVICE, and PRODUCT identifiers for identifying Turkish builds that were used for launching non-Turkish product. Conversely, if a combination of identifiers was used for Turkish Builds, it MUST NOT be reused for launching standard MADA products.

Placement of Google search widget

[TR-5.3-003] The Turkish builds MUST meet the following requirements to qualify for the bounty payment:

Additional Turkey requirements

Refer to the following Turkey-specific requirements:

[TR-6.3-003] The Turkey builds:

  • May place the Google search widget on the default home screen of a Turkish product.

[TR-7.7-004] For the preload of alternative WebView library, if an alternative WebView library is preloaded as out-of-box default, it:

  • [TR-7.7-004.001] MUST comply with CDD for the lifetime of the device, which is subject to periodic audits by Google.
  • [TR-7.7-004.002] MUST set the identifiablity as follows.
    • Set the alternative WebView package name to a name other than Google's WebView (com.google.android.webview) to avoid overwrite.
    • Report the alternative WebView package name correctly to the app.
    • Ensure the Chromium version that the alternative WebView is built upon is correctly reported by the default User Agent string and match what's reported to the app.
  • [TR-7.7-004.003] MUST set the security as follows:
    • Publish security updates to the alternative WebView based on new releases to Chromium within one month of those releases becoming available to a stable channel (in open source).
    • Make the alternative WebView package and any updates independently inspectable by third-party security researchers.
    • Enable safe browsing protection, where it is available through GMS.
    • Refrain from using the alternative WebView to collect any data about users' or devices' behavior and sending that data off device.
    • Disable crash reporting to Google through silent feedback.
  • [TR-7.7-004.004] MUST set the developer and user experience as follows:
    • Permit free and open use of WebView by all Android apps without requiring additional hurdles, like user sign-in.
    • Respect any existing app and user opt-outs.
  • [TR-7.7-004.005] MUST set the AndroidX compatibility as follows:
    • Ensure that the AndroidX reflection bootstrapping doesn't cause a failure, but may return an empty list of feature strings.
    • Pass all androidx.webkit automated tests for any features exposed in its feature list when using an alternative WebView package.
    • MUST NOT add new feature strings without coordinating with Google when using an alternative WebView package.

5)JP

Choice Screen builds for the Japan Mobile Software Competition Act (MSCA)

All new and existing Android phones in Japan, if they ship with Google Play, are required to show the Search and Browser Choice Screen to comply with the Mobile Software Competition Act (MSCA), which was announced by the Japan Fair Trade Commission (JFTC) on March 26, 2025.

[JP-5.5-001] Google has delivered a GMS package that supports the implementation of the Japan Choice Screen on GMS devices. Starting December 19, 2025, IR builds for any new PHONEs for sale in Japan and LR/MR builds for any existing PHONEs in Japan running Android 15 or higher, if they are submitted for approval, MUST integrate the Japan Choice Screen feature.

Additional notes:

  • This requirement does not apply to tablets.
  • This requirement does not apply to the devices running Android 14 or earlier OS.
  • This requirement does not apply to SMR or EMR builds.
  • If your PRODUCTs are shipping to multiple countries including Japan, IR/MR builds for them must support the Japan Choice Screen as well. However, the Choice Screen will not be shown to the user if the device is located outside of Japan.

Every software build (IR/MR/LR) implementing the Japan Choice Screen:

  • [JP-5.5-002] MUST declare the feature flag com.google.android.feature.JP_CHOICE_SCREEN.

  • [JP-5.5-003] MUST preload the Search Engine Selector app, and keep it force-enabled.

    • For example, this can be done by updating the getKeepEnabledPackages method in packages/apps/Settings/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java to return the package name of Search Engine Selector.
  • [JP-5.5-004] MUST override the value of config_defaultSearchSelectorPackageName framework resource overlay with the package name of the Search Engine Selector app.

  • [JP-5.5-005] MUST preload the minimum required version of apps in the following table, or their newer versions.

    • If the build is submitted for approval from December 19, 2025 to February 9, 2026:

    |------------------------|------------------------------------------------------|----------------|
    | Search Engine Selector | com.google.android.apps.setupwizard.searchselector | 1.35.808922502 |
    | Setup Wizard | com.google.android.setupwizard | 236.808841380 |
    | Play Store | com.android.vending | 47.9.30 |
    | Google Search | com.google.android.googlequicksearchbox | 16.41.36 |

    • If the build is submitted for approval on February 10, 2026 or later:

    |------------------------|------------------------------------------------------|--------------------|
    | Search Engine Selector | com.google.android.apps.setupwizard.searchselector | 1.36.839559840 |
    | Setup Wizard | com.google.android.setupwizard | 236.808841380 |
    | Play Store | com.android.vending | 48.9.30 |
    | Google Search | com.google.android.googlequicksearchbox | 16.41.36 |

The behavior of the Japan Choice Screen implementation in the out-of-the-box setup UX;

  • [JP-5.5-006] MUST adhere to the following requirements:

    • The Choice Screen UX MUST come from the Google-provided Search Engine Selector app.
    • The Choice Screen UX MUST NOT be skippable if the network connectivity is available.
    • The Choice Screen UX MUST be presented to the user, immediately after the Google services screen is presented.

If the user skipped the Japan Choice Screen during the out-of-the-box setup UX, then the Deferred Setup UX;

  • [JP-5.5-007] MUST be triggered and its UX MUST adhere to the following requirements;

    • A persistent notification MUST be posted until the user selects a default search engine and a default browser in the Choice Screen.

Important: To test the Japan choice screen, a Google Account for testing must be added to an allowlist. Submit an allow request for your test account to the Partner Issue Tracker. If you don't have access to the Partner Issue Tracker, reach out to your Android contact and ask to be onboarded.

6)US

7)总结

|-------------------------------|------------|----------------------------------------------|--------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------|-------------------------------------------|---------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 类别/Feature | ROW | IN(印度) | EEA(欧盟) | RU(俄罗斯) | TR(土耳其) | US(美国) | JP(日本) | 备注 |
| 送测要求 | 单独送测 | 使用IMADA单独送测 不走IMADA可与ROW合并自动识别激活 | 单独送测 (DMA要求) | 必须与ROW 分开送测 | 必须与ROW 分开送测 | 必须与ROW 分开送测 | 必须与ROW 分开送测 | 送测要求指设备GMS认证时需要向Google提交测试的地区版本策略。 - 单独送测:该地区设备需单独进行GMS认证 - 可与ROW合并:该地区设备可与ROW版本合并测试,系统自动识别激活 - 必须分开送测:该地区设备必须与ROW版本分开进行独立认证 |
| DEVICE配置 | 无 | 无 | com.google.android.feature.EEA_DEVICE com.google.android.feature.EEA_V2_DEVICE | 无 | com.google.android.feature.TR_DEVICE | com.google.android.feature.US_DEVICE | com.google.android.feature.JP_DEVICE | 定义:DEVICE配置是Google GMS(Google Mobile Services)的一组系统feature标签,用于标识设备的归属地区/市场区域,让GMS系统能根据地区差异自动启用或禁用特定功能。 |
| SearchSelector 应用集成 | 不集成 集成也不影响 | 必须集成 | 必须集成 | 不集成 集成也不影响 | 不集成 集成也不影响 | 不集成 集成也不影响 | 必须集成 | 定义:Google提供的系统级应用,用于在设备首次启动时展示搜索引擎选择界面,让用户可以选择默认的搜索引擎提供商。 注意:SearchSelector绝对不是SetupWizard开机向导,他们分工协同合作 SearchSelector:包名com.google.android.apps.setupwizard.searchselector SetupWizard:包名com.google.android.setupwizard |
| SearchSelector 特征控制 | 无 | com.google.android.feature.DSE_CHOICE_SCREEN | 通过EEA_DEVICE + EEA_V2_DEVICE 自动触发 无需单独配置CHOICE_SCREEN | 无 | 无 | 无 | com.google.android.feature.JP_CHOICE_SCREEN | 定义:Choice Screen是欧盟DMA(数字市场法案)要求的选择界面,允许用户在首次开机时选择默认搜索引擎、浏览器等核心应用,而非直接使用Google默认服务。 功能:配置XXX_CHOICE_SCREEN相关特征之后,具体功能由SearchSelector应用实现 |
| SearchSelector 特殊需求 | 无 | 不可卸载SearchSelector 不可在设置中禁用SearchSelector | 不可卸载SearchSelector 不可在设置中禁用SearchSelector 桌面隐藏SearchSelector图标 | 无 | 无 | 无 | 无 | EEA需要代码实现: 1. SearchSelector不可卸载 --> 默认支持/预制在priv-app目录 2. 桌面隐藏SearchSelector图标 3. SearchSelector不可在设置中被禁用(需添加到keepEnabledPackages) 参考:http://172.16.5.191:8080/c/mediatek/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/+/151908 |
| Google Search Widget 应用集成 | 必须集成 | 必须集成 | 必须集成 | 必须集成 | 必须集成 | 必须集成 | 必须集成 | 定义:Search Widget是桌面上的搜索框小部件。Google Search Widget就是由GoogleQuickSearchBox应用提供 包名: com.google.android.googlequicksearchbox,2026版GMS包由Velvet.apk实现 注意:RU地区因反垄断限制必须由Chrome替代提供搜索框Widget,Velvet应用可与继续保留 RU需求参考:http://172.16.5.191:8080/c/ft/GMS_OEM_16.0_202512/+/151608 |
| Chrome Search Widget 应用集成 | 不涉及 | 不涉及 | 不涉及 | 必须集成 | 不涉及 | 不涉及 | 不涉及 | 定义:Search Widget是桌面上的搜索框小部件。Chrome Search Widget就是由Chrome应用提供 包名:com.android.chrome,由Chrome.apk实现(仅RU地区) 注意:RU地区因反垄断限制必须由Chrome替代提供搜索框Widget,Velvet应用可与继续保留 RU需求参考:http://172.16.5.191:8080/c/ft/GMS_OEM_16.0_202512/+/151608 |
| Search Widget 特征控制 | 无 | 无 | com.google.android.paid.search | com.google.android.feature.RU | com.google.android.paid.qsb_widget | com.google.android.paid.search_widget | com.google.android.paid.search_widget | 定义:这些特征都是针对搜索框小部件进行地区差异化控制。 - paid.qsb_widget: Quick Search Box Widget授权标记(TR使用) - paid.search_widget: Search Widget授权标记(US/JP使用) - com.google.android.feature.RU: 俄罗斯地区标识,触发Chrome启用内置Search Widget 具体功能在GoogleQuickSearchBox和Chrome应用中实现。 |
| WebViewGoogle应用集成 | 可以集成 | 可以集成 | 可以集成 | 可以集成 | 建议集成 支持第三方WebView provider | 可以集成 | 可以集成 | 定义:WebViewGoogle应用实现了WebView功能,WebView能力就是用于应用内显示网页内容 包名:com.google.android.webview,由WebViewGoogle.apk实现 TR特殊:支持第三方WebView provider,允许用户选择第三方浏览器作为WebView实现。 |
| Chrome应用集成 | 必须集成 | 必须集成 | 必须集成 | 必须集成 | 必须集成 | 必须集成 | 必须集成 | 定义:Chrome应用不仅仅是Google浏览器,它具有多种功能: 1. 独立的浏览器:完整的UI和标签页书签等功能(所有地区) 2. WebView Provider:为其他APP提供网页渲染能力(所有地区) 3. Search Provider:搜索建议服务的实现(所有地区) 4. Search Widget:桌面搜索框小部件(仅RU地区,其他地区由GoogleQuickSearchBox或者Velvet.apk实现) |
| WebView特征控制 | 无 | 无 | com.google.android.paid.chrome | 无 | 集成WebViewGoogle应用就可以不配置com.google.android.feature.TR_3P_WEBVIEW,否则必须配置 | com.google.android.paid.chrome | com.google.android.paid.chrome | 定义:在配置这些特征之后,在提供WebView能力的应用中实现,其中WebViewGoogle和Chrome应用都对这些特征进行判断进行差异化处理 特征说明: - TR_3P_WEBVIEW:支持第三方WebView provider(TR专用) - paid.chrome:Chrome付费授权标记(US/JP使用) |
| AGSA特征控制 | 无 | 无 | 无 | 无 | 无 | com.google.android.paid.agsa | com.google.android.paid.agsa | AGSA = Android Google Search Application 包名: com.google.android.googlequicksearchbox 应用: GoogleQuickSearchBox.apk或者Velvet.apk 功能: Google搜索应用、搜索框Widget、Google Now/Feed、语音搜索、Google Assistant入口 定义:paid.agsa标记AGSA应用处于付费授权状态,主要用于US和JP市场。 |
| Experience 特征控制 | 无 | 无 | 无 | 无 | 无 | com.google.android.paid.google_experience | 无 | Google Experience = Google完整体验 定义:paid.google_experience标记设备已获得完整授权,包括: - 完整GMS套件授权 - Google品牌使用权 - Google Play商店准入 - Google服务完整支持 - 可进入美国运营商渠道 注意:仅US市场需要此feature。 |

相关推荐
盖丽男2 小时前
使用 GitHub Actions 自动打包 Android APK
android·github
小林望北2 小时前
Kotlin 协程:StateFlow 与 SharedFlow 深度解析
android·开发语言·kotlin
alexhilton11 小时前
Compose中的CameraX二维码扫描器
android·kotlin·android jetpack
eric*168814 小时前
Android15 enableEdgeToEdge 全面屏沉浸式体验
android·edgetoedge
小智社群15 小时前
小米安卓真机ADB对硬件操作
android·adb
嗷o嗷o16 小时前
Android BLE 为什么连上了却收不到数据
android
pengyu16 小时前
【Kotlin 协程修仙录 · 炼气境 · 后阶】 | 划定疆域:CoroutineScope 与 Android 生命周期的绑定艺术
android·kotlin
朝星16 小时前
Android开发[5]:组件化之路由+注解
android·kotlin
随遇丿而安16 小时前
Android全功能终极创作
android