3

我们正在为我们的组织测试 Android 管理 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()
4

1 回答 1

1

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

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

  1. 阻止设备,直到卸载不在策略中的应用程序
  2. 禁止添加其他 Google 帐户,因此用户无法安装不在政策中的应用

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

选项 1:阻止设备,直到卸载不在策略中的应用程序

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

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

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

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

  • 设置accountTypesWithManagementDisabled["com.google"],
  • 或者,设置modifyAccountsDisabledtrue.

这将防止在所有 Google 应用程序(包括 Gmail、Google 日历、Google Drive 等)中使用额外的 Google 帐户,而不仅仅是在 Google Play 商店中。

于 2019-09-24T11:34:57.330 回答