SpringBoard

SpringBoardiOSiPadOS 负责管理主屏幕的基础程序,并在设备启动时启动 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 2iOS9)[3]、SummerBoard、Anemone (iOS7iOS11)[4]、SnowBoard (iOS11iOS12)[5] 和 iThemer (iOS11iOS12)[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 会出现于同期的 iPhoneiPad、iPod TouchApple WatchMac

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 中可以被找到)。

参考文献

  1. . [2019-07-14]. (原始内容存档于2009-08-23).
  2. 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.
  3. . cydia.saurik.com. [2019-03-04]. (原始内容存档于2019-03-06).
  4. , AnemoneTeam, 2019-03-01 [2019-03-04], (原始内容存档于2018-06-11)
  5. . Yalu Jailbreak. 2018-10-05 [2019-03-04]. (原始内容存档于2019-03-06) (美国英语).
  6. . twitter.com. [2019-06-04]. (原始内容存档于2019-06-23) (英语).
  7. . junesiphone.com. [2019-06-04]. (原始内容存档于2019-06-04).
  8. . Apple Insider. 26 May 2015 [29 May 2015]. (原始内容存档于2015-05-29) (英语).
  9. . The Mac Observer. 18 June 2015 [18 June 2015]. (原始内容存档于2019-07-14) (英语).
  10. Clover, Juli. . MacRumors. 26 May 2015 [29 May 2015]. (原始内容存档于2017-01-02) (英语).
  11. Griffin, Andrew. . Independent.co.uk. 28 May 2015 [29 May 2015]. (原始内容存档于2019-07-14).
  12. Chowdhry, Amit. . Forbes. 29 May 2015 [2 June 2015]. (原始内容存档于2019-07-14).
  13. . (原始内容存档于2019-07-14).
  14. . (原始内容存档于2019-07-14).
  15. . (原始内容存档于2019-07-14).
  16. . (原始内容存档于2019-07-14).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.