手机锁(设备管控)需求
1. 业务背景
手机分期业务:客户在门店分期购机,设备交付后通过设备管控能力进行贷后管理。逾期达阈值时分级限制设备功能,还款后解除。设备为 Android 智能手机(尼日利亚市场,存在弱网、低端机、ROOT、换卡等情况)。
锁机服务安装在客户分期手机上,不参与业务逻辑决策,只按风控指令执行限制。
2. 整体架构与职责分界
| 层 | 角色 | 职责 |
|---|
| 锁机客户端 | 原子能力执行者 | 装在客户手机上,暴露细粒度、不可拆的原子 API,每个只做一件事,不含策略逻辑 |
| 锁机后端 | 策略执行层 | 接收风控指令,编排原子 API 组合下发,管理设备生命周期,聚合监测数据 |
| 风控系统 | 策略决策者 | 定义规则(逾期 N 天 → 限制等级 M),调用锁机后端 API 触发策略 |
策略层与执行层严格分离:
风控系统(规则引擎)
│ 逾期天数 → 确定限制等级
│ POST /lock/devices/{id}/strategy { level: 3 }
▼
锁机后端
│ 编排原子 API → 批量下发指令
▼
锁机客户端
│ showWatermark("逾期2天","red") + blockOutgoingCalls() + blockNonWhitelistApps()
3. 限制等级定义
后端预定义 6 级标准套餐,供风控按等级调用;也支持跳过等级、直接调原子 API 自定义组合。
| 等级 | 名称 | 组合的原子能力 |
|---|
| 0 | Normal | 无限制,仅后台监测 |
| 1 | Watermark | 屏幕水印(可配文案 + 颜色) |
| 2 | Mild | 水印 + 限制外呼/短信 |
| 3 | Moderate | 以上 + 限制非白名单 App |
| 4 | Severe | 以上 + 全屏锁定(仅还款 UI) |
| 5 | Maximum | 以上 + 限制呼入 |
4. 锁机客户端 — 原子能力
装在客户分期手机上,暴露标准化原子 API,不含策略逻辑。
4.1 水印控制
| 能力 | 说明 | 参数 |
|---|
| 显示水印 | 屏幕水印 | text 文案 / color 颜色 / position 位置 |
| 隐藏水印 | — | — |
4.2 锁屏控制
| 能力 | 说明 | 参数 |
|---|
| 全屏锁定 | 仅显示还款页面 | repaymentUrl 还款页地址 |
| 解除锁定 | — | — |
4.3 电话管控
| 能力 | 说明 | 参数 |
|---|
| 限制/恢复 呼出 | — | — |
| 限制/恢复 呼入 | — | — |
| 设置电话白名单 | 白名单号码不受限 | numbers 号码数组 |
4.4 短信管控
4.5 App 管控
| 能力 | 说明 | 参数 |
|---|
| 设置 App 白名单 | — | packageNames 包名数组 |
| 限制非白名单 App 启动 | — | — |
| 解除 App 限制 | — | — |
4.6 防卸载 / 安全防护
| 能力 | 说明 |
|---|
| 拦截指定 App 被卸载 / 允许卸载 | 防止锁机客户端或还款 App 被卸载 |
| 拦截恢复出厂设置 / 允许 | 防止绕过管控 |
4.7 监测上报
| 能力 | 上报时机 |
|---|
| SIM 卡状态 | 无卡 / 插拔 / 换卡时立即上报 |
| 联网状态 | 断连 / 恢复时立即上报 |
| GPS 位置 | 定期 + 位置跳变时上报 |
| ROOT/越狱状态 | 检测到变化上报 |
| 心跳 | 定期上报(间隔可配) |
4.8 客户端 API 设计原则
- 原子正交:调一个 API 不影响其它、不隐含其它行为。
- 无策略逻辑:客户端不判断”逾期几天”,只执行指令。
- 幂等:重复调用同一状态不报错。
- 状态可查:支持查询当前所有限制状态。
5. 锁机客户端 — 保活机制
确保客户端持续运行,不被用户终止或卸载。
| 维度 | 要求 |
|---|
| 防卸载 | 拦截用户主动卸载、设置卸载、ADB 卸载(Device Admin) |
| 自启 | 设备重启开机自动拉起;被强杀后守护进程自动重启 |
| 心跳保活 | 间隔可配(默认 30 分钟);连续 3 次未收到判定离线;上报 device_id + 限制等级 + 水印状态 + 时间戳 + 电池/网络 |
| 升级 | 后端推送、后台静默下载;失败回滚;可强制升级(不升级则限制部分功能) |
6. 锁机后端 — 策略执行
接收风控指令,编排原子 API 组合下发到客户端。
6.1 等级 → 原子组合编排
| 等级 | 编排内容 |
|---|
| 0 Normal | 仅心跳监测,解除所有限制 |
| 1 Watermark | 显示水印 |
| 2 Mild | 水印 + 限制外呼 + 限制短信 |
| 3 Moderate | 以上 + 设置 App 白名单 + 限制非白名单 App |
| 4 Severe | 以上 + 全屏锁定(还款页) |
| 5 Maximum | 以上 + 限制呼入 |
6.2 指令下发与执行保证
| 机制 | 要求 |
|---|
| 流程 | 记录策略变更日志 → 编排原子组合 → 依次下发 → 等待客户端 ACK → 更新设备状态 |
| ACK 确认 | 每条原子指令等 ACK,超时重试 3 次 |
| 离线队列 | 客户端离线时指令暂存,恢复后逐条下发 |
| 幂等 | 重复下发同一等级不产生副作用 |
| 操作日志 | 全链路日志(风控请求 → 后端编排 → 客户端执行) |
6.3 策略变更
| 场景 | 处理 |
|---|
| 升级 | 先解除当前等级抑制逻辑,再下发新等级 |
| 降级 | 对比差异,仅下发需变更的原子指令 |
| 解除(全额还款) | 逐项解除所有限制 |
7. 锁机后端 — 设备管理
7.1 设备注册 / 注销
| 场景 | 流程 |
|---|
| 交付时注册 | 现场触发注册 → 客户端生成设备指纹 → 后端登记并返回 deviceId |
| 换机/重装 | 旧设备注销 → 新设备重新注册 |
| 分期结清 | 解除限制 → 客户端清除本地数据 → 标记 inactive |
| 设备回收 | 标记 unregistered → 客户端自卸载 |
7.2 注册信息
device_id(后端生成)/ device_fingerprint(IMEI/序列号/Android ID 等)/ phone_model / android_version / customer_id / order_id / status(active / inactive / unregistered)。
7.3 设备状态查询
- 单设备:基本信息 + 当前限制等级 + 客户端版本 + 最后心跳 + 在线状态
- 批量:按 customer_id / order_id / status 过滤
- 监测汇总:SIM / 联网 / GPS / ROOT 等最新状态
7.4 白名单管理
| 类型 | 说明 |
|---|
| 全局白名单 | 默认 App / 电话白名单,对所有设备生效 |
| 设备级白名单 | 为特定设备单独配置,覆盖全局 |
| 推送 | 修改后推送在线设备,离线设备排队推送 |
默认白名单:App = 我方还款 App、主流钱包 App、银行类 App;电话 = 我方催收、我方客服。
8. 锁机后端 — 监测数据与告警
8.1 上报类型
| 类型 | 触发时机 | 内容 |
|---|
| SIM 状态 | 无卡 / 插拔 / 换卡 | sim_state / operator / iccid |
| 联网状态 | 断连 / 恢复 / 定期 | connected / network_type / offline_duration |
| GPS 位置 | 定期(默认 6h)/ 跳变 | lat / lng / accuracy / timestamp |
| ROOT 状态 | 变化时 | is_rooted / detail |
| 心跳 | 定期(默认 30min) | 设备基础状态 + 当前限制等级 |
8.2 告警规则(实时通知风控系统)
| 告警 | 触发条件 |
|---|
| 无 SIM 卡 | sim_state=absent |
| SIM 换卡 | sim_state=swapped 与新卡不匹配 |
| 设备离线 | 连续 3 个心跳周期未收到 |
| 位置异常 | 定位到非目标国家,或与上次距离过远 |
| ROOT 检测 | is_rooted=true |
8.3 数据存储与保留期
设备基础信息(设备生命周期)/ SIM 变更记录(180 天)/ GPS 轨迹(90 天)/ 心跳日志(30 天)/ 操作日志(180 天)。
9. 对接接口能力清单(供风控系统调用)
具体接口协议(路径、参数、格式)由对接阶段确定;此处列能力。
策略控制:应用标准套餐(等级 0-5)/ 应用自定义策略(原子组合)/ 解除限制 / 查询设备当前策略
设备管理:设备注册 / 设备注销 / 查询设备详情 / 批量查询设备
白名单管理:设置全局 App 白名单 / 设置全局电话白名单 / 设置设备级白名单 / 查询白名单
监测数据:查询设备告警 / 查询设备监测数据
10. 解锁流程
全额还款后,风控系统通知后端解除所有限制;客户端逐步恢复:解锁屏 → 解 App → 解外呼 → 隐藏水印。
11. 能力清单(评估 / 自检)
逐项标注支持程度:是(具备)/ 部分(需定制)/ 否(不支持),说明栏注明版本/限制/对接方式。
| # | 能力项 | 支持(是/部分/否) | 说明 |
|---|
| 1 | 屏幕水印(文案/颜色/位置可配) | | |
| 2 | 全屏锁定(仅展示还款页 URL) | | |
| 3 | 电话呼出/呼入限制 + 电话白名单 | | |
| 4 | 短信发送限制 | | |
| 5 | App 白名单 + 非白名单 App 启动限制 | | |
| 6 | 防卸载(用户/设置/ADB) | | |
| 7 | 拦截恢复出厂设置 | | |
| 8 | 开机自启 + 被杀自动重启(保活) | | |
| 9 | 静默升级 + 回滚 + 强制升级 | | |
| 10 | 6 级标准套餐 + 自定义原子组合下发 | | |
| 11 | 指令 ACK + 超时重试 + 离线队列 | | |
| 12 | 设备注册/注销/指纹/状态查询 | | |
| 13 | 全局/设备级白名单管理与推送 | | |
| 14 | SIM 状态/换卡 上报与告警 | | |
| 15 | 联网状态上报 + 离线判定告警 | | |
| 16 | GPS 位置上报 + 位置异常告警 | | |
| 17 | ROOT/越狱检测与告警 | | |
| 18 | 心跳保活(间隔可配) | | |
| 19 | 开放 API 供风控系统调用(策略/设备/白名单/监测) | | |
| 20 | 监测数据存储与保留期可配 | | |
技术评估补充
- 支持的 Android 版本范围:
- 是否需要设备预装 / 厂商 ROM 配合:
- 低端机 / 弱网表现:
- 数据合规与本地化(数据存储地区):
- 集成方式(SDK / MDM / 独立 App)与对接周期: