SpringBoardSpringBoard是iOS和iPadOS负责管理主屏幕的基础程序,并在设备启动时启动WindowServer、开启应用程序(实现该功能等程序称为应用启动器)和对设备进行某些设置。有时候主屏幕也被作为 SpringBoard 的代称。[來源請求] 历史2008 年苹果公司发布了 iPhone OS 1.1.3及一月应用包时,SpringBoard 的诞生引发了实质性的改动。 在任一应用上用手指按几秒会让所有的应用图标开始抖动,这时可以重新布局、跨页移动图标和及由 Safari 创建的网页应用或快捷方式,直到按下主屏幕按钮使图标停止抖动。[1] 同年 7 月发布的 iPhone OS 2.0 推出了 App Store,用户由此可以下载第三方应用,并可以同早前网页应用的方式删除他们。 在 2009 年 6 月发布的 iPhone OS 3 中,SpringBoard 添加了 Spotlight 功能来搜索信息、邮件或应用等。 2010 年 6 月发布的 iOS 4 允许为主屏幕设置背景图片(此前为黑底)、在「抖动」时拽住一个应用图标覆盖在另一个上来创建文件夹。把图标从文件夹中拖拽至外侧即可移出该文件夹;如果文件夹内没有任何图标便会自动删除。 设备被越狱后,可以通过 Cydia 添加未被苹果签名而不能上架 App Store 的第三方应用,但不能像一般应用一样删除(除非安装 CyDelete 插件),而仍需要通过 Cydia 移除。 一般来说,用户会根据使用频率或为了美观(如应用的颜色)来排列主屏幕上的图标。[2] 在越狱过的设备上图标显示SpringBoard 的布局存放于属性列表文件 /var/mobile/Library/SpringBoard/IconState.plist 中。在 iPhone OS 1.1.3 之前,越狱程序会对该此打补丁来在主屏幕上显示或排列未上架 App Store 的第三方应用图标。 iPhone OS 1.1.3 及以后,SpringBoard 原生地支持重新排列图标顺序,便不再需要补丁。同时通过越狱安装的应用的文件不再存放在 iOS 原生应用目录 /var/mobile/Applications 中,而可以直接放在 /Applications。 自定义主题修改配置文件可以改变 SpringBoard 的外观(称作主题或皮肤),如图标形状、状态栏的样式和其内的项目等。但由于对这些文件等修改比较繁琐,并容易修改不当产生错误甚至无法进入系统(俗称白苹果),于是催发出许多主题管理平台如 WinterBoard (iPhone OS 2 – iOS9)[3]、SummerBoard、Anemone (iOS7 – iOS11)[4]、SnowBoard (iOS11 – iOS12)[5] 和 iThemer (iOS11 – iOS12)[6] 等。 用户可以在 Cydia 等上下载为特定主题管理平台适配的包来方便地启用、停用主题,有时还可以修改该主题的一些细节。 替换 SpringBoard如果不想使用 iOS 默认的启动器,可以将其替换成如 FrontPage[7] 等。 漏洞SpringBoard 导致设备崩溃、死机或重启的漏洞通常被称为某某「炸弹」。 文本炸弹文本炸弹即会导致 SpringBoard 无响应或崩溃重启的一串字符。 「effective. Power」2015 年,SpringBoard 被发现一个 bug,即会被一串特定的 Unicode 字符串导致崩溃并重启。[8][9]如果有人在通过即时聊天等将这串字符发送来,收到消息时候就可能导致 iOS 设备死机,进一步甚至导致设备不再能接收短信或电话、经常失去网络连接和被重置成出厂设定。[10]之后这个 bug 缩减到只有在弹出通知或锁屏上出现该字符串时才会复现。[11] 该字符串看起来像:[12]
为了避免该 bug 复现,已被稍作修改。这个 bug 会出现于同期的 iPhone、iPad、iPod Touch、Apple Watch 和 Mac 。 iOS 8.4 中,这个 bug 被修复。 天城文字符类似于上例,这个会导致 iOS 11 设备崩溃的字符为
该错误可能和对天城文的连字处理有关[13]。iOS 11.3 beta 3 中,这个 bug 被修复。
黑点iOS 11.3 以及 iOS 11.4 测试版中,一个与「⚫️」黑色圆形 emoji 有关的字符串会导致崩溃。这个黑点的主要问题是包含了大量不可见的 Unicode 字符,这些字符会导致 CPU 在处理时负载过高。[14] 时间炸弹1970 年对于配有 64 位处理器的 iOS 设备,如果将系统时间设定至早于 1970 年 5 月,则无法正常开机。该问题被认为是 UNIX 时间戳置负而无法通过验证。苹果并没有解决这个问题,而是在后续版本的 iOS 中禁止将系统时间设定到早于 2000 年。 12 月 2 日iOS 11.1.2 发布后,一些用户表示他们的 iOS 设备会在 12 月 2 日凌晨 0:15 分后若接收到基于时间的通知提醒,就会持续崩溃或重启 SpringBoard。[15] 苹果建议用户暂时不允许所有通知,并等待新版本的 iOS 发布[16]。苹果尝试在 iOS 12.2 修复这个 bug,却使得设备又在中午 12:15 崩溃[來源請求]。直到 iOS 12.2 被重新[來源請求]发布,这个 bug 才得到解决。
应用程序载入iOS 4.3.3 开始,SpringBoard 会搜索系统中 /Applications 和 /var/mobile/Applications 两个目录下的应用并显示于主屏幕。 macOS 中的应用Mac OS X Lion 推出了借鉴于 iOS SpringBoard 主屏幕的新功能 Launchpad。两者有很多类似的地方(例如应用的文件夹),不过 Launchpad 并不会占据整个主屏幕,而更像是一个 Space(类似于仪表板)。 开发者预览版的 Mac OS X Lion 公布时,Mac OS X 上的该功能被命名为 Launchpad,不过在 Dock 上仍显示称作 SpringBoard(在 /System/Library/CoreServices/Dock.app/Contents/Resources 中可以被找到)。 参考文献
|