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 等上下载为特定主题管理平台适配的包来方便地启用、停用主题,有时还可以修改该主题的一些细节。
如果不想使用 iOS 默认的启动器,可以将其替换成如 FrontPage[7] 等。
漏洞
SpringBoard 导致设备崩溃、死机或重启的漏洞通常被称为某某“炸弹”。
文本炸弹即会导致 SpringBoard 无响应或崩溃重启的一串字符。
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 设备崩溃的字符为
జ్ఞా
iOS 11.3 以及 iOS 11.4 测试版中,一个与“⚫️”黑色圆形 emoji 有关的字符串会导致崩溃。这个黑点的主要问题是包含了大量不可见的 Unicode 字符,这些字符会导致 CPU 在处理时负载过高。[14]
对于配有 64 位处理器的 iOS 设备,如果将系统时间设定至早于 1970 年 5 月,则无法正常开机。该问题被认为是 UNIX 时间戳置负而无法通过验证。苹果并没有解决这个问题,而是在后续版本的 iOS 中禁止将系统时间设定到早于 2000 年。
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 中可以被找到)。
参考文献
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.