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 装置崩溃的字符为
జ్ఞా
该错误可能和对天城文的连字处理有关[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 中可以被找到)。
参考文献
- ^ Apple – iPod touch features. [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.
- ^ WinterBoard · Cydia. cydia.saurik.com. [2019-03-04]. (原始内容存档于2019-03-06).
- ^ Anemone, a revolutionary theming engine for iOS 7 to iOS 10! Theme more than just images!: AnemoneTeam/Anemone, AnemoneTeam, 2019-03-01 [2019-03-04], (原始内容存档于2018-06-11)
- ^ How to set up and use SnowBoard (Anemone alternative). Yalu Jailbreak. 2018-10-05 [2019-03-04]. (原始内容存档于2019-03-06) (美国英语).
- ^ DOD Graphics (@DODGraphics) | Twitter. twitter.com. [2019-06-04]. (原始内容存档于2019-06-23) (英语).
- ^ FrontPage API. junesiphone.com. [2019-06-04]. (原始内容存档于2019-06-04).
- ^ Bug in iOS Unicode handling crashes iPhones with a simple text. Apple Insider. 26 May 2015 [29 May 2015]. (原始内容存档于2015-05-29) (英语).
- ^ Corrupt iCloud Data Causes iOS SpringBoard Home Screen Crash (with Fix!). The Mac Observer. 18 June 2015 [18 June 2015]. (原始内容存档于2019-07-14) (英语).
- ^ Clover, Juli. New iOS Bug Crashing iPhones Simply by Receiving a Text Message. MacRumors. 26 May 2015 [29 May 2015]. (原始内容存档于2017-01-02) (英语).
- ^ Griffin, Andrew. iPhone 'effective power' text: how to be safe from iOS bug that lets people crash your phone. Independent.co.uk. 28 May 2015 [29 May 2015]. (原始内容存档于2019-07-14).
- ^ Chowdhry, Amit. Apple Acknowledges Disastrous iPhone Messages Bug, Suggests This Temporary Fix. Forbes. 29 May 2015 [2 June 2015]. (原始内容存档于2019-07-14).
- ^ [译] 分析让 iOS 崩溃的字符. (原始内容存档于2019-07-14).
- ^ 让 iPhone、iPad 崩溃的字符 bug 又来了 这次是“黑点”. (原始内容存档于2019-07-14).
- ^ 苹果日期Bug:今日0点15分起设备持续崩溃. (原始内容存档于2019-07-14).
- ^ iOS 11.1.2 全球大當機,蘋果給官方解法了! 請立即操作. (原始内容存档于2019-07-14).