现象概括: 在 iOS 27 中,使用 苹果原生中文输入法,在 App 资源库 搜索框中将选中文本长按悬浮(Drag & Drop)并在键盘区域向左滑动,会触发 SpringBoard 主进程崩溃,导致系统瞬间注销(Respring)。


一、 复现步骤

  1. 准备环境: 切换至 苹果原生中文输入法(拼音 26 键或九宫格均可)。
  2. 进入搜索: 滑动至最右侧 App 资源库,点击顶部搜索框。
  3. 输入全选: 任意输入几个字符,双击或长按全选文本。
  4. 悬浮图层: 长按选中文本,直到其脱离输入框变成随手指移动的悬浮图层
  5. 左滑注销: 保持按住悬浮图层,将手指移至键盘区域并快速向左滑动
  6. 判定结果: 屏幕黑屏并出现转圈图标,2 秒后自动返回解锁/桌面界面。

二、 底层原理与触发条件对比

1. 核心崩溃原因:markedText 指针死锁

在 iOS UIKit 的文本渲染引擎中,中文输入法存在 markedText(预编辑文本缓冲区) 状态(即未上屏的高亮拼音/拼音数字挂起串):

  • 冲突点: 当文本处于悬浮状态时,SpringBoard 会试图冻结当前的 markedTextRange 指针。
  • 崩溃点: 此时在键盘上左滑抛入的新 Touch Event 强行要求更新该缓冲区,导致两个线程同时修改同一个挂起指针,触发 EXC_BAD_ACCESS(野指针/内存越界访问),主进程自我保护性崩溃。

2. 不同输入法触发结果对比

输入法类型 是否存在 Marked Text 预编辑串 能否触发 Respring 崩溃 / 免疫原因
苹果原生中文拼音(26键) 可以 悬浮 Drag 事件与 markedTextRange 预编辑缓冲区冲突
苹果原生中文九宫格 可以 悬浮 Drag 事件与九宫格按键/光标滑动监听发生冲突
苹果原生英文(26键) 不可以 字符直接上屏,数据流扁平,无法触发野指针崩溃
第三方输入法(搜狗/百度等) 独立沙盒接管 不可以 沙盒隔离,无法触及 SpringBoardUIKit 主进程指针

三、 对 5G IPCC 固化的影响

针对已完成 5G IPCC 终极固化(Flush to NAND) 的设备(如 iPhone 12 Pro Max):

  1. 不掉 5G 原因: 该 Bug 仅破坏了 SpringBoard(桌面 UI 渲染进程)的 Frontboard 内存指针,属于轻量级纯 UI 崩溃。基带守护进程(CommCenter)与 NVRAM 运行内存未收到广播重载信号
  2. 结论: 注销后已固化的 5G IPCC 凭证与 Setup Complete 存根完好无损,无需重新卡贴或固化。