Android for work总结(上) - Go语言中文社区

Android for work总结(上)


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.这个可以通过如下代码完成:

      @Override
      protected 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 exit
      boolean 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服务端的配置等等内容。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Liu1314you/article/details/52028823
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 05:21:52
  • 阅读 ( 1176 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢