免责声明:政策摘要仅仅是概览;请务必查看完整政策以确保合规。如果这两者冲突,请以完整政策为准
Google Play 禁止应用(或应用内的任何第三方 SDK)擅自访问或干扰用户所用的设备、其他设备、网络、API、服务、所用设备上的其他应用、任何 Google 服务或已获授权的运营商网络。这涵盖各种有害、高风险或破坏性的行为,例如在 Play 商店外自行更新、下载未经授权的可执行代码、利用安全漏洞、协助黑客入侵或创建会对其他应用产生不良影响的游戏作弊工具。重中之重是保护用户设备和广阔生态系统的完整性。请查看完整政策以确保合规。
我们不允许应用干扰、中断、损害或以未经授权的方式访问用户的设备、其他设备/计算机、服务器、网络、应用编程接口 (API) 或服务,包括但不限于相应设备上的其他应用、任何 Google 服务或授权运营商的网络。
Google Play 上的应用必须符合 Google Play 核心应用质量指南中列出的默认 Android 系统优化要求。
对于通过 Google Play 分发的应用,不得采用 Google Play 更新机制以外的其他任何方式修改、替换或更新应用本身。同样地,应用不得从 Google Play 以外的来源下载可执行代码(例如 dex、JAR 和 .so 文件)。这项限制不适用于在虚拟机或解释器中运行且通过这种方式间接访问 Android API 的代码(例如 WebView 或浏览器中的 JavaScript)。
如果应用或第三方代码(例如 SDK)会在运行时加载 JavaScript、Python 或 Lua 等解释型语言(例如,未打包到应用软件包中的此类代码),不得允许发生可能违反 Google Play 政策的行为。
我们不允许任何代码引入或利用安全漏洞。查看应用安全性改进计划,了解应用开发者需注意的最新安全问题。
“设备和网络滥用”常见违规行为示例:
- 应用阻止或干扰其他应用展示广告。
- 应用用于游戏作弊,影响到其他应用的游戏内容。
- 应用为入侵服务、软件或硬件或者规避安全保护措施提供便利或相关操作说明。
- 应用以违反服务条款的方式访问或使用特定服务或 API。
- 应用不符合加入许可名单的条件,却试图绕过系统电源管理机制。
- 应用帮助向第三方提供代理服务;但如果该服务是应用面向用户提供的主要核心功能,则不构成违规。
- 应用或第三方代码(例如 SDK)从 Google Play 以外的来源下载可执行代码(例如 dex 文件或原生代码)。
- 应用事先未经用户同意便在设备上安装其他应用。
- 应用为分发或安装恶意软件提供链接或便利。
- 应用或第三方代码(例如 SDK)包含具有额外 JavaScript 接口的 WebView,并且该接口会加载不受信任的网络内容(例如 http:// 网址)或从不受信任的来源获取的未经验证的网址(例如,通过不受信任的 intent 获取的网址)。
- 应用利用全屏 intent 权限强制用户与干扰性广告或通知进行互动。
- 应用通过规避 Android 沙盒保护,从其他应用中获取用户活动信息或用户身份信息。
主要考量因素
| 正确做法 | 错误做法 |
| 确保您的应用和所集成的任何 SDK 均符合核心应用质量指南中的 Android 系统优化要求。 | 未经用户明确同意就在设备上安装其他应用。 |
遵循 FLAG_SECURE 设置,并且设备端容器必须遵循 REQUIRE_SECURE_ENV。 |
协助向第三方提供代理服务,除非这是应用面向用户提供的主要核心用途。 |
| 仅将用户发起的数据传输作业用于以下网络数据传输:由用户发起,且仅在必要时运行。 | 在您的应用内使用会从 Google Play 外部下载可执行代码(例如 dex 或 .so 文件)的第三方 SDK(虚拟机/解释器环境除外)。 |
| 查看应用安全性改进计划,了解应用开发者需注意的最新安全问题。 | 绕过系统电源管理(除非符合条件)。 |
| 遵守前台服务政策。 | 阻止或干扰另一应用展示广告。 |
使用全屏 intent 权限强制与干扰性广告和通知互动。 |
前台服务使用
“前台服务权限”政策旨在保障用户知情权和隐私权,以及理想的设备性能。如果应用以 Android 14 及更高版本为目标平台,则必须在应用清单和 Play 管理中心内声明有效的前台服务 (FGS) 类型,提供相关说明、阐明对用户的影响,并附上演示视频,以证明是根据用户发起的可感知操作来使用这些服务的。请查看完整政策以确保合规。
前台服务权限可确保正确使用面向用户的前台服务。对于以 Android 14 及更高版本为目标平台的应用,您必须为应用中使用的每项前台服务指定有效的前台服务类型,并为该类型声明适当的前台服务权限。例如,如果应用所使用的前台服务需要使用地图地理定位功能,您必须在应用的清单中声明 FOREGROUND_SERVICE_LOCATION 权限。
只有在前台服务的使用满足以下条件时,应用才可以声明前台服务权限:
- 提供对用户有益且与应用核心功能相关的功能
- 由用户发起或用户可感知(例如,播放歌曲的音频、将媒体投放到其他设备、准确清晰的用户通知、用户请求将照片上传到云端)
- 可以由用户终止或停止
- 不可被系统中断或延迟,否则会导致负面用户体验,或导致用户预期的功能无法正常运行(例如,通话必须立即开始,且不可被系统延迟)。
- 只在完成任务所需的时间内运行
以下前台服务的使用情形不受上述条件约束:
- 前台服务类型 systemExempted 或 shortService;
- 前台服务类型 dataSync(仅限使用 Play Asset Delivery 功能时)
有关如何使用前台服务的详细说明,请访问此处。
主要考量因素
| 正确做法 | 错误做法 |
| 仅在为完成任务而确有必要的情况下运行前台服务 (FGS)。 | 在系统的任务管理方式不影响应用内用户体验的情况下,使用 FGS(建议您考虑使用 WorkManager 之类的替代方案)。 |
| 确保 FGS 提供对用户有益的核心应用功能、由用户发起、在通知中可见或可被用户感知(例如播放歌曲时发出的音频)。 | 在应用清单中声明无效或不准确的 FGS 类型。 |
| 如果您的应用以 Android 14 及更高版本为目标平台,则在 Play 管理中心内提交一份声明表单,描述所用的每项 FGS 权限的使用情形。确保选择合适的 FGS 类型。 |
用户发起的数据传输作业
为维护用户控制权并防止长时间的后台活动,Google Play 针对使用 User-Initiated Data Transfer Jobs API 的应用提供了严格的准则。数据传输作业必须由用户直接发起,以确保应用是执行命令,而不是自主发起传输作业。这些传输作业专用于完成网络数据传输任务,持续时长不得超出为完成所请求的操作而需花费的时长。请查看完整政策以确保合规。
只有在使用情形满足以下条件时,应用才能使用 User-Initiated Data Transfer Jobs API:
- 由用户发起
- 用于网络数据传输任务
- 只在完成数据传输所需的时间内运行
有关如何使用 User-Initiated Data Transfer API 的详细说明,请访问此处。
主要考量因素
| 正确做法 | 错误做法 |
| 由用户操作发起传输。 | 自动发起传输。 |
| 仅用于网络数据传输任务。 | 将该 API 用于非网络任务。 |
| 传输完毕后即停止使用。 | 运行时长超出实际需求。 |
与 FLAG_SECURE 相关的要求
FLAG_SECURE 是一个由应用声明的显示标志,用于表明界面中的敏感数据应仅限在安全平台上显示,防止通过屏幕截图或非安全显示屏查看和截取/录制这类信息。当内容不应在应用/设备外传播或查看时,开发者可以使用此标志。Google Play 要求每款应用都尊重(而非绕过)其他应用的 FLAG_SECURE 声明,以保障安全并保护隐私。请查看完整政策以确保合规。
FLAG_SECURE 是一个在应用代码中声明的屏幕标记,用于表明应用界面 (UI) 包含敏感数据,且这些数据仅限于在使用应用时通过安全的途径使用。此标记旨在防止此类数据显示在屏幕截图中或通过不安全的屏幕查看。如果应用内容不应在应用或用户设备以外进行广播、查看或以其他方式传输,开发者会声明此标记。
出于安全和隐私保护的目的,所有在 Google Play 上分发的应用都必须遵守其他应用的 FLAG_SECURE 声明。也就是说,应用不得帮助或创建权变措施来绕过其他应用中的 FLAG_SECURE 设置。
符合无障碍工具条件的应用不受此要求的约束,前提是此类应用不会传播、保存或缓存受 FLAG_SECURE 保护的内容,以用于在用户设备之外进行访问。 主要考量因素
| 正确做法 | 错误做法 |
针对界面中需要防止被截图或录制的敏感数据,声明 FLAG_SECURE。 |
绕过其他应用内的 |
尊重其他应用的 FLAG_SECURE 声明,以保障安全并保护隐私。 |
将 FLAG_SECURE 保护的内容传输、保存或缓存到设备外部(包括无障碍工具)。 |
运行设备端 Android 容器的应用
为防范安全问题和隐私问题,如果设备端 Android 容器应用缺少 Android OS 的整套安全功能,则开发者可在其应用清单中使用“REQUIRE_SECURE_ENV”标志。该标志意味着相应应用不应在模拟环境中运行。凡是提供这类容器的应用都必须尊重该标志,即不得加载任何已声明该标志的应用,且不得绕过这项安保措施。请查看完整政策以确保合规。
设备端 Android 容器应用会提供模拟全部或部分底层 Android 操作系统的环境。这些环境中的体验可能不会反映全套 Android 安全功能,因此开发者可以选择添加安全环境清单标志,以便向设备端 Android 容器表明,这些容器不得在其模拟的 Android 环境中运作。
安全环境清单标志
- 查看应用清单,确认要在设备端 Android 容器中加载的应用是否声明了此标志。
- 切勿将声明了此标志的应用加载到其设备端 Android 容器中。
- 不得充当代理,即不得通过在设备上拦截或调用 API,使它们看起来像是安装在容器中。
- 不得为绕过此标志提供便利或创建解决方法(例如,通过加载版本较低的应用,来绕过当前应用的 REQUIRE_SECURE_ENV 标志)。
主要考量因素
| 正确做法 | 错误做法 |
提供设备端容器的应用必须检查其他应用的清单中是否存在 REQUIRE_SECURE_ENV 标志,并且不得加载清单中存在该标志的应用。 |
忽略该标志。将已声明 REQUIRE_SECURE_ENV 标志的应用加载到您的容器中。 |
| 避免采用变通方法。绝不通过加载应用的较低版本等方式来绕过该标志。 | 绕过安全措施。设计变通方法来覆盖应用的安全偏好设置。 |
| 避免对 API 实施代理操作。不通过在容器外拦截或调用 API 来充当代理。 | 当应用在不安全的环境中运行时,使其看起来像是在安全的环境中运行。 |
| 查看针对设备端 Android 容器的政策要求。 |