通知

您现在可以通过 Play 管理中心账号中的“帮助”页面来请求协助。如果您没有 Play 管理中心的访问权限,请联系您的账号管理员获取邀请。

使用“安装程序检查”防止未经授权的修改或再分发行为

“安装程序检查”是 Google Play 提供的一项自动保护服务,可帮助您保护应用和游戏,防止未经授权的再分发行为。此服务可在无数据连接的情况下在您的应用中运行,并可在 Play 管理中心内一键开启,无需开发者在测试前做任何工作,也无需进行后端服务器集成。

运作方式

“安装程序检查”会添加到您的应用代码中,以防止再分发行为。如果未能顺利通过“安装程序检查”,系统会提示用户前往 Google Play 获取应用。它的设计目标如下:

  • 防范付费应用盗版:如果用户通过非官方渠道获取已启用 Play 保护机制的应用版本,系统会提示用户前往 Google Play 购买应用。
  • 增加接收官方更新的用户数量:如果用户旁加载未经修改的 Google Play 版应用,系统会提示用户获取官方版本,以确保他们能够持续接收应用更新。
重要提示:“安装程序检查”并不能保证防范所有破解、盗版、重新打包和再分发行为。不过,此服务可令上述行为实现起来更复杂、成本更高,从而降低相应行为取得成功的可能性。Google Play 会不断增强自动保护功能,使您的新版应用能够自动获得最新、最强大的保护。

设置“安装程序检查”

下面的步骤介绍了您需要做些什么才能开始使用“安装程序检查”。点击某个部分即可将其展开。

自动保护功能概览

“安装程序检查”会向应用代码中添加 Google Play 许可检查,以检查访问应用的用户账号是否已从经授权的来源安装应用(获得许可)。如果不是,系统会提示用户通过自定义商品详情获取应用。

前提条件

如果您为特定应用开启自动保护,那么 Google Play 在您创建每个可面向设备分发的版本时都会自动添加保护机制。该保护机制要求 Google Play 代表您创建经过修改的 APK 并为其签名,因此您必须:

请注意以下限制因素:

  • 自动保护功能仅在 Android 6.0 Marshmallow(API 级别 23)及更高版本上受支持。Android M 发布于 2015 年;截至 2023 年,以 midSDKVersion 23 及更高版本为目标平台的设备在活跃 Android 设备中的占比将超过 97%。
  • 自动保护功能支持以下 ABI:x86、x86_64、armeabi-v7a 和 arm64-v8a。如需更新应用的目标 ABI,请更新 Gradle 设置。您可从定位条件中移除没有活跃 Android 设备在使用的其他 ABI,不会影响应用的可用性。
  • 自动保护功能可在离线状态下使用。不过,如果设备上的 Play 商店应用长时间处于离线状态,则“必须从 Google Play 安装”设置会定期要求您建立数据连接。
  • 如果您的应用已在使用 Play 许可服务,您应关闭“必须从 Google Play 安装”。
  • 在您将应用上传到内部应用分享部分时,系统不会应用保护机制。请格外注意,务必仅与可信任的团队成员分享内部应用分享链接,而不要对外分享未受保护的版本。
  • 自动保护功能与 app bundle 的代码公开透明机制不兼容,因为完整性保护涉及到修改代码。如果在启用自动保护功能的情况下上传采用了代码公开透明机制的 app bundle,该 app bundle 将被拒绝。
  • 此保护服务不涵盖免安装体验。若要获得保护,发布轨道中的 app bundle 就不能支持免安装体验。您可以向常规发布轨道中上传受保护的 app bundle,同时向免安装版专用轨道中上传不受保护的支持免安装体验的 app bundle。
第 1 步:开启保护功能

按照“准备工作和发布版本”的第 1 步中所述的方法创建发布版本。

您可以在创建版本时开启保护功能(如准备和发布版本第 2 步中所述),也可以在应用完整性页面(测试和发布 > 应用完整性)中开启保护功能,该页面包含可帮助您确保用户以您预期的方式来体验应用和游戏的完整性和签名服务

准备发布版本时,您会看到一个显示获取完整性保护管理完整性保护的按钮。然后,您可以在“自动保护”下方点击是,开启,以开启完整性保护。随后 Google Play 会为您的发布版本签名,并添加完整性保护,从而限制篡改应用和未经授权分发应用的行为。这表明自动保护功能已开启。

完成发布版本的准备工作,然后保存您所做的更改。

第 2 步:测试受保护的应用

通过各个测试轨道测试受保护的应用版本,以确保该功能不会对用户体验或性能产生意外影响。

建议您在测试评估项目中添加以下操作:

  • 测试游戏的启动过程,看看是否会出现启动时发生崩溃以及启动速度减慢的问题。
  • 测试您的原生代码 (C/C++) 回调至 Java(在您自己的代码库或第三方代码库中)的情况,例如广告、日志记录、社交集成、身份验证,或者权限处理等 Android 专用功能。

如果您在测试过程中发现问题,可以选择还原到可能已在上一版本中使用过的旧版自动保护功能,也可以关闭自动保护功能。我们建议您不要将未受保护的版本推进到开放式轨道或正式版轨道。

如需为单个发布版本关闭完整性保护功能,请按以下步骤操作:

  1. 准备发布版本时,点击管理完整性保护
  2. 在“自动保护”下方,选择旧版保护功能为此版本关闭保护
  3. 保存您所做的更改。所做更改将应用于此发布版本。当您下次上传发布版本时,该发布版本将再次获得最强的新版保护。
第 3 步:将应用推进到正式版轨道

准备就绪后,您可在 Play 管理中心内将版本发布到正式版轨道,从而面向所选国家/地区的所有 Google Play 用户发布受保护的应用。

自定义会在用户未能通过“安装程序检查”时显示的商品详情

“安装程序检查”是一项自动保护功能,会在用户通过非官方渠道获取应用时提示用户前往 Google Play 下载应用。当用户点按该对话框时,系统会将其重定向到应用的商品详情,以便用户点按安装(或者购买更新)以从 Google Play 获取应用。

您可为点按完整性保护对话框的所有访问者自定义商品详情资源,包括应用的名称、图标、说明和图形资源。若要自定义会在用户通过完整性保护对话框访问时显示的商品详情,请执行以下操作:

  1. 打开 Play 管理中心,然后前往应用完整性页面(测试和发布 > 应用完整性)。
  2. 滚动到“Play Integrity API”部分。
  3. 点击设置
  4. 滚动到“自定义商品详情”部分。
  5. 点击创建商品详情
  6. 按照创建自定义商品详情页面上的说明操作,然后点击保存

或者,您也可直接在自定义商品详情页面中为完整性保护对话框创建自定义商品详情:

  1. 打开 Play 管理中心,然后前往自定义商品详情页面(扩大用户群 > 自定义商品详情)。
  2. 点击创建商品详情,选择“创建新商品详情”或“复制现有商品详情”,然后点击下一步
  3. 在“商品详情”部分中,滚动到目标受众群体
  4. 选择按网址,然后在文本框中输入“playintegrity”。
  5. 填写所有其他详细信息,然后点击保存

提示:网址参数“playintegrity”是专为完整性深层链接预留的特殊关键字,因此在设置自定义商品详情时,您必须按原样输入该参数,且不得更改。

推荐做法

不发布未受保护的应用版本

如果您将不受保护的版本发布到开放式轨道,或通过 Google Play 之外的其他渠道发布此类版本,应用保护机制将失去应有的作用。为了让应用的完整性保护功能正常发挥作用,只有受保护的应用版本才适合发布到开放式轨道和正式版轨道。

混用防篡改解决方案时需格外谨慎

自动保护可能与其他运行时防篡改解决方案不兼容,因此如果您尝试同时使用这些解决方案,可能会导致用户遇到问题。如果您已在应用中实现了 Play 许可服务,则应停用“必须从 Google Play 安装”。如果您的应用会执行其他运行时检查,请务必先对受保护应用进行全面测试,然后再将应用发布到开放式轨道。

测试受保护的应用

Google Play 会自动在所有轨道分发受保护的 build:内部测试轨道、封闭式轨道、开放式轨道和正式版轨道。您应该照常对这些版本进行全面测试。

如果您将应用的 build 直接上传到内部应用分享部分,Google Play 不会添加保护。这是为了让您可以通过内部应用分享功能上传调试 build 及其他类似 build。

如果您在 App bundle 资源管理器中访问某个受保护应用版本的内部应用分享链接,系统会原样分享经过 Google Play 处理的相应 build。如果该应用版本已上传到测试轨道并受保护,则您访问 App bundle 资源管理器中的内部应用分享链接时,系统会提供受保护的版本。您可以在 App bundle 资源管理器的详细信息标签页中查看保护状态。

监控崩溃问题

如果您发现应用的崩溃次数有所增多,这可能是由于应用保护机制发挥作用而导致的;这可能表明自动保护功能在正常运行。如果攻击者试图修改您的应用,但未成功,运行时检查会让该应用停止运行,而这主要通过让应用崩溃来实现。

并非由 Google Play 引起的崩溃不会影响您的 Android Vitals 稳定性指标。如果您使用其他工具分析崩溃情况(例如 Crashlytics),并且需要通过软件包名称来按安装来源过滤,Google Play 商店的软件包名称为“com.android.vending”。

如果您担心崩溃次数增多,产生了负面影响,可以向我们报告崩溃情况,并提供尽可能详细的信息。我们的团队会进行调查。如果我们确定崩溃情况与保护机制有关,便会回复您。

举报遭破解的应用版本

破解版本是指在以下情况下仍可运行的版本:经过了修改在您要求只能通过 Google Play 安装的情况下,有人通过 Google Play 之外的其他渠道安装了该版本。

如果您发现应用的破解版本,可以向我们举报

相关内容

该内容对您有帮助吗?

您有什么改进建议?
搜索
清除搜索内容
关闭搜索框
Google 应用
主菜单
15051534414462651108
true
搜索支持中心
false
true
true
true
true
true
92637
false
false
false
false