Fleet 实战指南:Android BYOD 设备从旧 MDM 迁移到 Fleet(Work Profile 迁移与 Android Enterprise 对接)
2026/9/17 2:35:10 网站建设 项目流程

Fleet 实战指南:Android BYOD 设备从旧 MDM 迁移到 Fleet(Work Profile 迁移与 Android Enterprise 对接)

【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleet

Fleet 对 Android BYOD(Bring Your Own Device)设备采用 Android Enterprise 的 Work Profile(工作资料)模式:注册 MDM 时会在设备上创建一个 Work Profile,将企业应用与数据从员工的个人信息中隔离出来。本篇技术指南介绍如何把 BYOD Android 设备从旧 MDM 方案平滑迁移到 Fleet:先移除设备上的旧 Work Profile,再通过 Fleet 的注册链接(或二维码)让终端用户完成 Android Enterprise 注册。读完本文,你将掌握完整的迁移操作步骤、设备厂商(Google Pixel / Samsung)界面差异、SSO 认证配置要求,并能从 Fleet 源码层面理解 BYOD 注册、去重与解注册状态的底层处理逻辑。

迁移前提条件

开始迁移前,需要满足两个前提:

  1. 在 Fleet 中完成 Android MDM 配置:将 Android Enterprise 连接到 Fleet 的Settings > Integrations > Mobile device management (MDM)页面。Fleet 支持所有 Play Protect 认证(此前称为 GMS)的 Android 设备。具体对接流程(Google Workspace、Microsoft 365 或其他邮箱提供商的注册流程)详见 Android MDM 配置指南。
  2. 获取 Fleet 注册链接:为待迁移的设备获取注册(enrollment)链接,获取方式参见 注册主机指南 中的 UI 部分。

从源码结构看,Fleet 的 Android MDM 能力集中在server/mdm/android/目录下,其中 service 实现 负责对接 Android Enterprise Management API(AMAPI),Pub/Sub 消息处理 负责接收设备状态推送。设备所有权在该模块中有明确的两类常量定义(见 server/mdm/android/service/pubsub.go):

const ( DeviceOwnershipCompanyOwned = "COMPANY_OWNED" DeviceOwnershipPersonallyOwned = "PERSONALLY_OWNED" )

BYOD 设备即对应PERSONALLY_OWNED类型——这正是本文迁移场景的设备形态。

另外需要明确一个关键行为:从旧 MDM 解注册 BYOD 主机只会移除/擦除工作资料(企业数据),个人数据不会被删除(参见 Android MDM 配置指南中的 Migration 一节)。这是 BYOD 场景下"先删旧档案、再注册 Fleet"两步走流程的安全基础。

第一步:移除旧的 Work Profile

在将设备从旧 MDM 迁移到 Fleet 之前,必须先移除设备上现有的 Work Profile。不同厂商的路径略有差异:

  1. Google Pixel 设备:打开设置 > 密码、通行密钥和账户(Passwords, passkeys & accounts)> 工作(Work)> 移除工作资料(Remove work profile)Samsung 设备:打开设置 > 账户和备份(Accounts and backup)> 管理账户(Manage accounts)> 工作(Work)> 卸载工作资料(Uninstall Work profile)
  2. 在确认对话框中选择删除(Delete),旧 Work Profile 即从设备上移除。

移除完成后,设备处于"无工作资料"的干净状态,可以进入下一节的 Fleet 注册流程。

第二步:将设备注册到 Fleet

将注册链接发送给终端用户,由其在 Android 设备的浏览器中打开。一个方便的替代方式是使用二维码,用 Chrome 生成二维码的步骤如下:

  • 在电脑上打开注册链接。
  • 右键点击页面,选择为本网页创建二维码(Create QR Code for this Page)
  • 如果该选项缺失,点击工具栏右侧的三点菜单图标,选择投射、保存和分享(Cast, Save, and Share)> 创建二维码(Create QR Code)

注册流程的具体步骤:

  1. 在 Android 设备上打开注册链接。
    • 如果该 fleet 已配置 IdP 身份验证,则要求通过 SSO 完成身份认证。认证成功后,页面会显示一个Enroll(注册)按钮。
  2. 点击Enroll。随后出现 "Set up your work profile"(设置你的工作资料)界面。
  3. 点击Next。下一屏会介绍 Work Profile 是什么。
  4. 点击Accept & continue(Samsung 设备上为Agree)。
    • 随后 Work Profile 设置开始。在 Samsung 设备上可能还会多出一个提示,选择Next即可。
    • 会依次出现一系列注册界面。当 Work Profile 激活后,Google Pixel 设备的状态栏会出现一个公文包(briefcase)图标,Samsung 设备则显示在屏幕右下角。
  5. 如果在 Google Admin 中启用了 Google 认证,请使用工作 Google 账户登录。
    • 如果在此界面选择跳过(Skip),之后访问 Google Calendar 等应用时将被要求登录该 Google 账户。
  6. 注册完成后,Work Profile 界面消失,回到浏览器的 Fleet 注册页面。此时可以关闭该标签页。

注册完成后,打开应用抽屉(从主屏上滑,或点击 Apps 图标),会出现一个独立的 Work Profile 应用标签页,这些应用的图标右下角带有公文包图标。

如果终端用户使用工作 Google 账户登录时,设备不满足管理员在 Google Admin 中配置的要求,系统会提示用户进行解决。

源码解析:Fleet 如何接收并确认 BYOD 注册

上面的用户侧操作完成后,设备侧的变化会经由 Android Enterprise 的 Pub/Sub 推送回到 Fleet。核心处理逻辑在 server/mdm/android/service/pubsub.go 中:

ProcessPubSubPush方法(pubsub.go)按notificationType属性分流消息,注册事件由handlePubSubEnrollment处理(pubsub.go)。其中几个与迁移场景直接相关的实现细节值得注意:

  • Pub/Sub Token 校验:每条推送都先经过authenticatePubSub(pubsub.go)验证,将请求中的 token 与 Fleet 存储的MDMAssetAndroidPubSubToken配置资产比对,不匹配则返回认证失败。
  • 重复投递去重:注释明确说明,重投的 ENROLLMENT 消息会触发重复的 setup-experience 任务(重复的 VPP 安装与活动记录),因此注册前先按messageID和事件时间做去重判断(isDuplicateOrStalePubSub),保证每台设备只完成一次注册流程。
  • DELETED 状态即解注册确认:源码注释指出"部分部署会将移除 work profile 报告在 ENROLLMENT 通知下"(见 pubsub.go),因此该分支同时检测appliedStatestate字段是否为DELETED。命中后,Fleet 会调用clearAndroidBYOWipeRef清除 BYOD 的擦除引用(BYOD 解注册仅擦除工作资料),再通过SetAndroidHostUnenrolled将主机翻转为未注册状态,并把所有待安装的 VPP 应用标记为失败、写入活动日志。这正对应本文"先移除旧 Work Profile"这一步在 Fleet 侧的最终落地:旧档案移除被确认,主机回到未注册状态,等待重新注册到 Fleet。

迁移过程中主机状态变化还有两条可验证的记录可以对照:

  • 重新注册时的状态清理:见 changes/43500-clear-state-on-android-reenrollment。Android 主机重新注册时,Fleet 会清除动态标签、待处理命令和软件安装;手动分配的标签保留,待安装的软件被报告为失败;除非启用preserve_host_activities_on_reenrollment,历史活动记录也会被清除。
  • 解注册后的展示修复与 API 字段:见 changes/50884-enrollment-id-after-unenroll.md。修复了个人(BYOD)Android 主机解注册后主机详情 Vitals 卡片将Enrollment ID替换为空Serial number的问题,并在主机 API 响应中新增mdm.is_personal_enrollment字段,报告 Fleet 最后记录的主机 MDM 注册是否为个人(BYOD)注册——与mdm.enrollment_status不同,该字段在主机解注册后不会清除。

这两条变更说明:在"旧 MDM → Fleet"的迁移过程中,如果设备中途出现过解注册/再注册,Fleet 对标签、待安装软件和活动记录的处理是确定性的,不会残留旧 MDM 时代的状态,IT 管理员可以放心分批次推进迁移。

迁移后的验证清单

迁移完成后,建议按以下清单确认结果:

  1. 设备状态栏出现公文包图标(Pixel 在状态栏,Samsung 在右下角),应用抽屉中出现独立的 Work Profile 标签页;
  2. 在 Fleet 主机列表中能看到该 Android 主机,mdm.enrollment_status为已注册;BYOD 主机可在 API 响应中通过mdm.is_personal_enrollment确认为个人注册;
  3. 若主机曾从旧 MDM 解注册过一次,活动日志中应有对应的mdm_unenrolled(Platform: android)活动记录,且重新注册后动态标签与待安装软件已按预期清理。

参考路径

  • 迁移操作文档(本文主体):articles/android-byod-mdm-migration.md
  • Android MDM 开启、迁移与关闭指南:articles/android-mdm-setup.md
  • 注册链接获取:articles/enroll-hosts.md
  • IdP 身份验证配置:articles/setup-experience.md
  • Android MDM 服务端实现:server/mdm/android/service/pubsub.go、server/mdm/android/service/service.go

【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleet

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询