Android for work总结(上)

来源:互联网 发布:电脑版电视直播软件 编辑:程序博客网 时间:2024/06/09 21:36

      • Android for work是什么
      • Afw支持的模式
      • Afw的组成部分
      • Afw的集成
        • 相关配置
        • 相关的代码APIAPK

Android for work是什么

Android for Work(以下简称Afw)是由google主导开发的一套旨在支持Android在企业中运用的一套方案。这套方案可以实现在同一台设备上同时支持工作应用和个人应用。

基于afw方案的设备有以下优点:

  • 数据安全
    工作数据通过work profile和个人数据隔离出来,并且受到work profile的保护, IT可以部署工作数据被保护的策略

  • App安全
    work profile里面的app是通过Google play for work部署的。IT可以阻止
    安装未知来源的app,并且可以配置app.

  • 设备安全
    支持afw的设备受到磁盘加密,锁屏,远程attestation services的保护。如果hardware-backed keystore存在的话,也受到它的保护。

Afw支持的模式

Afw支持两种模式。

  • Device Owner
    在设备Setupwizard的过程中就把EMM App设成管理设备的app就可以叫做Device Owner模式,这种模式可以简单的理解为IT具有完全控制设备的能力。

  • Work Profile
    又叫做Profile Owner或者BYOD.
    在设备正常走完setupwizard流程以后,安装EMM app然后把它设成管理设备的app的模式叫做Work Profile模式。这种模式下有两种应用,一种是带有公文包图标的应用,这种应用由IT管理;另一种是个人应用,这种应用由用户自己管理。如下图


    这里写图片描述

Afw的组成部分

Afw由四大部分构成。

  • 设备管理APIs(Device Management APIs)
    Android提供了一套Api来支持afw, 这些api分布在两个class文件中。
    . /frameworks/base/core/java/android/app/admin/DevicePolicyManager.java
    . /frameworks/base/core/java/android/os/UserManager.java
    通过这些api可以实现IT 管理设备的不同策略,同时,Android提供了CTS测试case来确保这些API正确的被实现了。

  • 企业移动管理(Enterprise Mobility Management) Apps
    又称为手机设备管理(Mobile Device Management) App,这是一个在Work Profile或者Device Owner模式下管理设备的app. 作为Device Owner的EMM App比作为Work Profile的EMM App能调用更多的设备管理Api.(比如在Device Owner模式可以禁用Camera,但是在work profile模式下不行)

  • Google Play for Work
    不管是Device Owner模式还是Work Profile模式,Google Play for Work是默认的部署应用到设备的方法。用户可以使用什么样的App是通过IT来配置和管理的。

  • 安全和证书
    任何设备只要过了Google CTS测试并且兼容CDD,那么它就可以宣称完全兼容Android.然而,在企业中部署设备可能还需要额外的安全需求和证书。这些功能对于OEM来说是可选的。

Afw的集成

1. 相关配置

  1. L平台

    • 必须支持如下两个feature
      android.software.device_admin
      android.software.managed_users
      可以通过adb shell pm list features验证


      这里写图片描述

    • 不能是低内存设备
      ro.config.low_ram不能被定义,通过adb shell getprop ro.config.low_ram查看。

    • 满足L CDD文档9.5章节的需求
      CDD的文档可以在source.android.com/compatibility/index.html下载。

    • 至少支持两个以上的用户
      adb shell pm get-max-users查看。
      如果是单用户,则需要打google提供的patch.
      https://androidreview.googlesource.com/#/c/150805/
      https://androidreview.googlesource.com/#/c/150599/
      https://androidreview.googlesource.com/#/c/150783/
      https://androidreview.googlesource.com/#/c/151597/

    • AndroidForWork.apk必须预置在设备上

    • GMSCore版本号必须是6.5.99+

    • 核心的GMS应用需要添加到白名单中
      ./packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_device.xml
      比如
      这里写图片描述

      ./packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_profile.xml
      比如
      这里写图片描述

    • Launcher需要支持work profile模式中的badging application
      详细的描述可以参见
      CDD 9.5章节。如果是google launcher或者AOSP的launcher,则一般都是默认支持的。

    • 支持NFC的设备,必须在SUW(Setupwizard)使能NFC并且配置接受相关的Intent.
      /packages/apps/Nfc/res/values/provisioning.xml

      <bool name="enable_nfc_provisioning">true</bool><item>application/com.android.managedprovisioning</item>
    • Setupwizard要满足以下条件
      如果是google setupwizard则什么都不用做。
      如果是OEM的Setupwizard:
      需要支持Device Owner provisioning.当它开始的时候,需要检查是否另一个进程是否已经完成了setup.如果是这种情况,setupwizard需要触发开启桌面的Intent并且完成Setupwizard.这个可以通过如下代码完成:

      @Overrideprotected void onStart() {super.onStart();// When returning to a setup wizard activity, check to see if another setup process// has intervened and, if so, complete an orderly exitboolean completed = Settings.Secure.getInt(getContentResolver(),Settings.Secure. USER_SETUP_COMPLETE , 0) != 0;if (completed) {startActivity(new Intent(Intent.ACTION_MAIN, null).addCategory(Intent.CATEGORY_HOME).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK| Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED));finish();}...}
  2. M平台
    除以下列举的,其余和L平台一致

    • 满足M CDD 3.9章节的需求

    • 单用户多用户均支持,不需要额外打Patch.

    • AndroidForWork.apk不再需要,Device Owner集成在Google Play Services当中。

    • GMScore的版本必须是7.8.99+版本。

2. 相关的代码/API/APK

  1. L平台

    • Provision App:下载EMM APP,设置Device Owner模式等等
    /packages/apps/ManagedProvisioning
    • 策略和管理的API:被EMM 和Provision APP调用
    . /frameworks/base/core/java/android/app/admin/DevicePolicyManager.java. /frameworks/base/core/java/android/os/UserManager.java
    • AndroidForWork.apk
      获取EMM App的相关信息等,然后调用Provision App
      此APK是GMS里面包含的

    • Phonesky.apk
      Google Play Store

    • Setupwizard
      调用AndroidForWork.apk开启Device Owner流程的设置
  2. M平台

    除了不再需要AndroidForWork.apk其余和L平台一致。

由于篇幅较大,剩下的内容将放在下一篇来讲解,包括Afw的流程,EMM服务端的配置等等内容。

0 0