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 注册、去重与解注册状态的底层处理逻辑。
迁移前提条件
开始迁移前,需要满足两个前提:
- 在 Fleet 中完成 Android MDM 配置:将 Android Enterprise 连接到 Fleet 的Settings > Integrations > Mobile device management (MDM)页面。Fleet 支持所有 Play Protect 认证(此前称为 GMS)的 Android 设备。具体对接流程(Google Workspace、Microsoft 365 或其他邮箱提供商的注册流程)详见 Android MDM 配置指南。
- 获取 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。不同厂商的路径略有差异:
- Google Pixel 设备:打开设置 > 密码、通行密钥和账户(Passwords, passkeys & accounts)> 工作(Work)> 移除工作资料(Remove work profile)。Samsung 设备:打开设置 > 账户和备份(Accounts and backup)> 管理账户(Manage accounts)> 工作(Work)> 卸载工作资料(Uninstall Work profile)。
- 在确认对话框中选择删除(Delete),旧 Work Profile 即从设备上移除。
移除完成后,设备处于"无工作资料"的干净状态,可以进入下一节的 Fleet 注册流程。
第二步:将设备注册到 Fleet
将注册链接发送给终端用户,由其在 Android 设备的浏览器中打开。一个方便的替代方式是使用二维码,用 Chrome 生成二维码的步骤如下:
- 在电脑上打开注册链接。
- 右键点击页面,选择为本网页创建二维码(Create QR Code for this Page)。
- 如果该选项缺失,点击工具栏右侧的三点菜单图标,选择投射、保存和分享(Cast, Save, and Share)> 创建二维码(Create QR Code)。
注册流程的具体步骤:
- 在 Android 设备上打开注册链接。
- 如果该 fleet 已配置 IdP 身份验证,则要求通过 SSO 完成身份认证。认证成功后,页面会显示一个Enroll(注册)按钮。
- 点击Enroll。随后出现 "Set up your work profile"(设置你的工作资料)界面。
- 点击Next。下一屏会介绍 Work Profile 是什么。
- 点击Accept & continue(Samsung 设备上为Agree)。
- 随后 Work Profile 设置开始。在 Samsung 设备上可能还会多出一个提示,选择Next即可。
- 会依次出现一系列注册界面。当 Work Profile 激活后,Google Pixel 设备的状态栏会出现一个公文包(briefcase)图标,Samsung 设备则显示在屏幕右下角。
- 如果在 Google Admin 中启用了 Google 认证,请使用工作 Google 账户登录。
- 如果在此界面选择跳过(Skip),之后访问 Google Calendar 等应用时将被要求登录该 Google 账户。
- 注册完成后,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),因此该分支同时检测
appliedState与state字段是否为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 管理员可以放心分批次推进迁移。
迁移后的验证清单
迁移完成后,建议按以下清单确认结果:
- 设备状态栏出现公文包图标(Pixel 在状态栏,Samsung 在右下角),应用抽屉中出现独立的 Work Profile 标签页;
- 在 Fleet 主机列表中能看到该 Android 主机,
mdm.enrollment_status为已注册;BYOD 主机可在 API 响应中通过mdm.is_personal_enrollment确认为个人注册; - 若主机曾从旧 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),仅供参考