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. 相关配置
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();}...}
M平台
除以下列举的,其余和L平台一致满足M CDD 3.9章节的需求
单用户多用户均支持,不需要额外打Patch.
AndroidForWork.apk不再需要,Device Owner集成在Google Play Services当中。
- GMScore的版本必须是7.8.99+版本。
2. 相关的代码/API/APK
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流程的设置
M平台
除了不再需要AndroidForWork.apk其余和L平台一致。
由于篇幅较大,剩下的内容将放在下一篇来讲解,包括Afw的流程,EMM服务端的配置等等内容。
- Android for work总结(上)
- Android for work总结(下)
- android7.0新特性--Android for Work
- xamarn.android binding parse sdk for a week to work
- android-Building Apps for Work,Ensuring Compatibility with Managed Profiles
- Work for dream
- Don't Work for Money
- Don't work for money
- Don't work for money
- Shell some stuff for work
- Study schedule for new work.
- 国人上google--for android
- To make the android emulator (AVD) work fine for ADT V22.2.1
- Android Logcat not work
- Qt for Android开发总结
- Qt for Android开发总结
- Vlc For Android问题总结
- Gradle总结《一》---For Android
- APP开发实战117-APP图片优化
- android Binder 学习 博客链接
- 【ES6学习笔记】-----箭头函数与symbol
- POJ-2586-Y2K Accounting Bug
- **MYSQL** 系列六
- Android for work总结(上)
- QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果
- python笔记---需求文件requirements.txt的创建及使用
- JHTP小结_第十二章_GUI组件(上篇)-Part 2
- Torch7学习(五)——学习神经网路包的用法(3)
- nginx+uwsgi 部署django
- 关于android程序进入第一个界面出现空白的解决方案
- Sublime Text+MinGW实现轻量级C语言开发环境
- 大数据处理算法一:Bitmap算法(转)