工作配置文件( Work Profile )是个从 Android 5.0 开始就有的功能,这需求在国内算是比较小众的,所以 MIUI 都没怎么优化。感觉国内对这个接触得比较多的可能就是 Island (炼妖壶)这款 App 了,它就是使用了 Work Profile 机制创建一个虚拟环境来实现应用双开。
如果你在一些大公司或者外企工作,那公司很可能用的是 Microsoft 365 微软全家桶(当然也有一些其它解决方案如 Google Workspace 也用到 Work Profile 这个机制,但似乎目前没见过有几家企业会用这些三流解决方案,至少我呆过的公司都是微软全家桶 Microsoft 365 )。
此时,如果你要在你的安卓手机上访问公司的微软 App ,比如 Outlook ,Teams ,OneDrive ,Office 这些,就会要求安装一个叫 Microsoft Intune 的 App (也叫“公司门户”),这个 App 的作用之一就是设置 Work Profile ,(当然也看公司的策略,像我上家沃尔沃集团甚至不需要登录 Intune ,只要安装 Intune 就能登录 Outlook 和 Teams 了,但会检测 ROOT 甚至会检测 Busybox )。后来跳到了爱立信,爱立信的 Intune 策略就是会创建 WorkProfile ,然后所有公司的微软 App 只能在 WorkProfile 里面运行。
在 MIUI 下,WorkProfile 基本上是可用的,但是,但是,但是,最大的问题是 MIUI 的权限机制包括后台策略没有对 WorkProfile 做适配。MIUI 的权限管理是凌驾于安卓之上的,所以哪怕在 WorkProfile 中,MS Intune 这个看家 App 设置了一些权限和后台(电池优化策略),在 MIUI 上是不起作用的。 具体而言:里面所有 App 没有自启权限,导致 Intune 无法拉起,所有微软 App 你得先开 Intune ,不能清后台,让它保持在后台,才能开其它如 Outlook ,Ofiice ,Teams 那些 App 。以及手机信息权限默认会返回空白通行证,会让 Teams 闪退。
MIUI 的权限管理机制是通过“手机管家”( com.miui.securitycenter )来设置的,而不是在“设置”App 里,当时通过一个“创建快捷方式”应用打开 WorkProfile 里面的设置,虽然能挖到原生安卓的权限设置那些 Activity 并打开,但是并没有用。这点让我折腾了好久,后来通过在手机分身(双开、分身、WorkProfile 本质都是利用安卓的多用户机制)下查看当前 Activity 观察才发现 MIUI 的权限是通过这个手机管家来控制。 那么,解决方法就来了:
(以下命令如果有 root 权限可以直接在安卓上通过一些终端如 Termux 用 su
提权后执行,如果没有 root 需要 USB 调试通过 adb shell
执行)
首先通过 pm list users
来查看 WorkProfile 的 user id ,记好,之后好用,比如我的为 12 ,下面的命令中--user 12
即为 WorkProfile 的 ID ,根据情况改成你自己的。
工作资料(WorkProfile)ID 为 12 。security space 为 MIUI 手机分身,XSpace 为 MIUI 双开
找一个“创建快捷方式”的 App ,酷友应该对这种东西挺熟悉了,搞各种骚操作经常用[流汗滑稽](这个之后就是用来打开各种 Activity 用) 这里我用的是这个 https://apkpure.com/cn/shortcut-creator/com.alextern.shortcuthelper ,把 APK 下载下来。
把这个 APK 安装进去,如果你有 root 权限,可以把这个 apk 复制到 /data/local/tmp/里(不知为啥在 /sdcard 里装不了),然后 pm install --user 12 /data/local/tmp/xxx.apk
。
如果通过 adb ,则是把这个 apk 放电脑上,然后 adb install --user 12 xxx.apk
把手机管家( com.miui.securitycenter )安装进去,这一步不用搞 APK ,因为在系统里本来就有。
pm install-existing --user 12 com.miui.securitycenter
此时可以试试,在桌面上长按你的工作空间中的 App ,点“应用信息”,这时应该打开的是 MIUI 的设置界面了,而不是原生安卓的。这里就可以改自启动,权限设置了。
可以看到状态栏有个公文包的标志,说明这个界面是在 WorkProfile 里的,同时 App 图标上也有个公文包
如果无法通过这一步打开这个 MIUI 的设置,可以通过创建快捷方式 App (比如 Shortcut Creator )打开 WorkProfile 中的手机管家,来设置。
注意不要通过桌面上的带公文包图标的“手机管家”打开,实测那个打开的还是外面的手机管家(状态栏上没有公文包图标)。然后点击应用管理,可以看到里面有且只有工作空间中的应用,并且状态栏上也有公文包,说明这个设置的是工作空间中的应用了。
详细权限包括空白通行证也可以设置
至此,MIUI 的工作空间中的 App 至少可以像正常的安卓系统一样使用了。
插个题外话,有的公司(比如傻逼爱立信)会在 WorkProfile 中应用一些限制策略,比如 DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY
,这个策略让全局(包括你的初始空间)无法安装未知来源的 APK 。(安卓也傻逼,这个 API 是从安卓 10 开始提供的,本来安卓口口声声说 WorkProfile 这个功能就是沙箱隔离,能在个人设备上安全运行工作 App 互不干扰,结果你现在能干扰到工作空间外面去了,而且即使设置了这个依然能通过 adb 安装 App ,甚至能装到工作空间里),于是我写了个 Xposed 模块,能够使一些限制策略失效,如果有被同样问题困扰的老哥可以看看: https://github.com/liyafe1997/FuckDevicePolicy/
1
justinbest 2023-02-20 00:33:32 +08:00 via Android
赞!
市面上能完美适配 MS Intune 的安卓手机很少,我就是不想折腾才买了三星并刷了港版系统 |
2
baibing 2023-08-19 01:17:09 +08:00 via Android
谢谢分享!有个小问题,如果直接刷 MIUI EU 版本,是不是就不用这么折腾了?
|
3
liyafe1997 OP @baibing 这就不清楚了,你可以试试,我猜差别不大。
|
4
qmm0523 2023-08-25 01:30:23 +08:00
感谢分享!我的小米全家桶有救了
|
5
wujun4code 170 天前
最新的 小米 14 澎湃,遇到了
```sh adb install --user 10 Shortcut_Creator_3.2.4_APKPure.apk ``` 直接报错 Shell does not have permission to access user 10 ,是不是因为你 root 了,而我没有啊 = =! |
6
liyafe1997 OP @wujun4code 对的,没有 root 情况下哪怕在 adb shell 里也没法往工作资料安装 App
|