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).