SpringBoard
SpringBoard 是 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]
effective. Power لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ 冗
为了避免该 bug 复现,已被稍作修改。这个 bug 会出现于同期的 iPhone、iPad、iPod Touch、Apple Watch 和 Mac 。
iOS 8.4 中,这个 bug 被修复。
黑点
iOS 11.3 以及 iOS 11.4 测试版中,一个与「⚫️」黑色圆形 emoji 有关的字符串会导致崩溃。这个黑点的主要问题是包含了大量不可见的 Unicode 字符,这些字符会导致 CPU 在处理时负载过高。[14]
1970 年
对于配有 64 位处理器的 iOS 设备,如果将系统时间设定至早于 1970 年 5 月,则无法正常开机。该问题被认为是 UNIX 时间戳置负而无法通过验证。苹果并没有解决这个问题,而是在后续版本的 iOS 中禁止将系统时间设定到早于 2000 年。
应用程序载入
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 中可以被找到)。
参考文献
- . [2019-07-14]. (原始内容存档于2009-08-23).
- Matthias Böhmer, Antonio Krüger. A Study on Icon Arrangement by Smartphone Users 页面存档备份,存于. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '13). ACM, New York, NY, USA, 2137–2146.
- . cydia.saurik.com. [2019-03-04]. (原始内容存档于2019-03-06).
- , AnemoneTeam, 2019-03-01 [2019-03-04], (原始内容存档于2018-06-11)
- . Yalu Jailbreak. 2018-10-05 [2019-03-04]. (原始内容存档于2019-03-06) (美国英语).
- . twitter.com. [2019-06-04]. (原始内容存档于2019-06-23) (英语).
- . junesiphone.com. [2019-06-04]. (原始内容存档于2019-06-04).
- . Apple Insider. 26 May 2015 [29 May 2015]. (原始内容存档于2015-05-29) (英语).
- . The Mac Observer. 18 June 2015 [18 June 2015]. (原始内容存档于2019-07-14) (英语).
- Clover, Juli. . MacRumors. 26 May 2015 [29 May 2015]. (原始内容存档于2017-01-02) (英语).
- Griffin, Andrew. . Independent.co.uk. 28 May 2015 [29 May 2015]. (原始内容存档于2019-07-14).
- Chowdhry, Amit. . Forbes. 29 May 2015 [2 June 2015]. (原始内容存档于2019-07-14).
- . (原始内容存档于2019-07-14).
- . (原始内容存档于2019-07-14).
- . (原始内容存档于2019-07-14).
- . (原始内容存档于2019-07-14).