从 Play 商店中的不同帐户安装的应用程序未被 Android Management API 阻止

Posted

技术标签:

【中文标题】从 Play 商店中的不同帐户安装的应用程序未被 Android Management API 阻止【英文标题】:App installs from different account in Play Store not being blocked by Android Management API 【发布时间】:2020-01-23 21:46:57 【问题描述】:

我们正在为我们的组织测试 android Management API,我们发现了托管 Play 商店的解决方法:如果用户将他的个人帐户添加到设备(例如访问 Gmail),他可以切换到该帐户在 Play 商店中下载政策不允许的应用程序。

虽然 DPC(Android 设备策略)会在下次策略同步时删除应用,但出于某种原因,安装应用时不会自动进行同步。 Device Policy 应用仅在以下情况下同步:1) 管理员通过 API 推送对策略的更改,或 2) 用户通过应用手动同步。

这意味着用户可以安装他想要的任何应用程序,并使用它直到策略同步。

是否有任何方法可以阻止用户从托管的 Play 商店帐户之外下载应用,或者让 Device Policy 应用在安装应用时自动同步?

这是我应用于测试设备和补丁代码的策略:

import json

test_policy_name = enterprise_name + '/policies/test'

test_policy_json = '''

  "applications": [
    
      "packageName": <app_package_name>,
      "installType": "BLOCKED"
    ,
    
      "packageName": <app_package_name>,
      "installType": "AVAILABLE"
    
  ],
  "installAppsDisabled": false,
  "playStoreMode": "WHITELIST",
  "installUnknownSourcesAllowed": false

'''

androidmanagement.enterprises().policies().patch(
    name=test_policy_name,
    body=json.loads(test_policy_json)
).execute()

【问题讨论】:

【参考方案1】:

确实,可以使用与 Android Management API 配置的不同的 Google 帐户从 Google Play 商店安装任何应用程序。

您有两种选择来解决这个问题:

    在未包含在策略中的应用被卸载之前阻止设备 禁止添加其他 Google 帐户,这样用户就无法安装不在政策中的应用

目前,在允许其他 Google 帐户的同时,无法阻止从 Google Play 商店安装任何应用。我们正在开发一项允许这样做的功能,但目前没有准确的时间表。

选项 1:在未包含在政策中的应用被卸载之前阻止设备

您可以在policy 中设置policyEnforcementRules 以阻止设备,直到卸载不允许的应用程序:


  "policyEnforcementRules": [
    
      "blockAction": 
        "blockAfterDays": 0
      ,
      "wipeAction": 
        "wipeAfterDays": 30,
        "preserveFrp": true
      ,
      "settingName": "playStoreMode"
    
  ]

选项 2:禁止添加其他 Google 帐户,这样用户就无法安装不在政策中的应用

您可以在策略中禁用添加其他 Google 帐户:

accountTypesWithManagementDisabled设置为["com.google"], 或者,将modifyAccountsDisabled 设置为true

这将防止在所有 Google 应用(包括 Gmail、Google 日历、Google 云端硬盘等)中使用其他 Google 帐户,而不仅仅是在 Google Play 商店中。

【讨论】:

以上是关于从 Play 商店中的不同帐户安装的应用程序未被 Android Management API 阻止的主要内容,如果未能解决你的问题,请参考以下文章

如何以开发者身份隐藏 Google Play 商店中的应用

如何从 Play 商店中删除应用程序? [关闭]

[从Google Play商店安装应用时的onActivityResult回调

如何通过用于下载应用程序的 Google Play 商店帐户获取 Firebase 用户?

在 Play 商店中的何处接受 Google Play 应用签名服务条款?

当我将 Android 应用程序转移到其他 Google Play 开发者帐户时,它是不是仍可在 Google Play 商店中使用?