V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liyafe1997
V2EX  ›  MIUI

MIUI 工作配置文件(WorkProfile)调教指南

  •  
  •   liyafe1997 · 2023-02-05 23:16:00 +08:00 · 2194 次点击
    这是一个创建于 417 天前的主题,其中的信息可能已经有所发展或是发生改变。

    工作配置文件( 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 执行)

    1. 首先通过 pm list users 来查看 WorkProfile 的 user id ,记好,之后好用,比如我的为 12 ,下面的命令中--user 12 即为 WorkProfile 的 ID ,根据情况改成你自己的。

      pic

      工作资料(WorkProfile)ID 为 12 。security space 为 MIUI 手机分身,XSpace 为 MIUI 双开

    2. 找一个“创建快捷方式”的 App ,酷友应该对这种东西挺熟悉了,搞各种骚操作经常用[流汗滑稽](这个之后就是用来打开各种 Activity 用) 这里我用的是这个 https://apkpure.com/cn/shortcut-creator/com.alextern.shortcuthelper ,把 APK 下载下来。

    3. 把这个 APK 安装进去,如果你有 root 权限,可以把这个 apk 复制到 /data/local/tmp/里(不知为啥在 /sdcard 里装不了),然后 pm install --user 12 /data/local/tmp/xxx.apk 。 如果通过 adb ,则是把这个 apk 放电脑上,然后 adb install --user 12 xxx.apk

    4. 把手机管家( com.miui.securitycenter )安装进去,这一步不用搞 APK ,因为在系统里本来就有。 pm install-existing --user 12 com.miui.securitycenter

    5. 此时可以试试,在桌面上长按你的工作空间中的 App ,点“应用信息”,这时应该打开的是 MIUI 的设置界面了,而不是原生安卓的。这里就可以改自启动,权限设置了。

      pic

      可以看到状态栏有个公文包的标志,说明这个界面是在 WorkProfile 里的,同时 App 图标上也有个公文包

      如果无法通过这一步打开这个 MIUI 的设置,可以通过创建快捷方式 App (比如 Shortcut Creator )打开 WorkProfile 中的手机管家,来设置。

      pic

      注意不要通过桌面上的带公文包图标的“手机管家”打开,实测那个打开的还是外面的手机管家(状态栏上没有公文包图标)。然后点击应用管理,可以看到里面有且只有工作空间中的应用,并且状态栏上也有公文包,说明这个设置的是工作空间中的应用了。

      pic

      详细权限包括空白通行证也可以设置

      pic

    至此,MIUI 的工作空间中的 App 至少可以像正常的安卓系统一样使用了。

    插个题外话,有的公司(比如傻逼爱立信)会在 WorkProfile 中应用一些限制策略,比如 DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY ,这个策略让全局(包括你的初始空间)无法安装未知来源的 APK 。(安卓也傻逼,这个 API 是从安卓 10 开始提供的,本来安卓口口声声说 WorkProfile 这个功能就是沙箱隔离,能在个人设备上安全运行工作 App 互不干扰,结果你现在能干扰到工作空间外面去了,而且即使设置了这个依然能通过 adb 安装 App ,甚至能装到工作空间里),于是我写了个 Xposed 模块,能够使一些限制策略失效,如果有被同样问题困扰的老哥可以看看: https://github.com/liyafe1997/FuckDevicePolicy/

    4 条回复    2023-08-25 01:30:23 +08:00
    justinbest
        1
    justinbest  
       2023-02-20 00:33:32 +08:00 via Android
    赞!
    市面上能完美适配 MS Intune 的安卓手机很少,我就是不想折腾才买了三星并刷了港版系统
    baibing
        2
    baibing  
       223 天前 via Android
    谢谢分享!有个小问题,如果直接刷 MIUI EU 版本,是不是就不用这么折腾了?
    liyafe1997
        3
    liyafe1997  
    OP
       219 天前
    @baibing 这就不清楚了,你可以试试,我猜差别不大。
    qmm0523
        4
    qmm0523  
       217 天前
    感谢分享!我的小米全家桶有救了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1026 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:21 · PVG 06:21 · LAX 15:21 · JFK 18:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.