社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
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支持两种模式。
Device Owner
在设备Setupwizard的过程中就把EMM App设成管理设备的app就可以叫做Device Owner模式,这种模式可以简单的理解为IT具有完全控制设备的能力。
Work Profile
又叫做Profile Owner或者BYOD.
在设备正常走完setupwizard流程以后,安装EMM app然后把它设成管理设备的app的模式叫做Work Profile模式。这种模式下有两种应用,一种是带有公文包图标的应用,这种应用由IT管理;另一种是个人应用,这种应用由用户自己管理。如下图
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来说是可选的。
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();
}
...
}
M平台
除以下列举的,其余和L平台一致
满足M CDD 3.9章节的需求
单用户多用户均支持,不需要额外打Patch.
AndroidForWork.apk不再需要,Device Owner集成在Google Play Services当中。
L平台
/packages/apps/ManagedProvisioning
. /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
M平台
除了不再需要AndroidForWork.apk其余和L平台一致。
由于篇幅较大,剩下的内容将放在下一篇来讲解,包括Afw的流程,EMM服务端的配置等等内容。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!