因為 iOS 7 的字典檔案是從網路下載的,所以腦筋動的快的人就已經在想說能不能增加自訂字典了。
加上內建只有簡體字典,沒有繁體,所以剛好名正言順的來研究一下。
下載的畫面就長這樣。
經過簡單的解析,可以得到一些網址,例如:
- http://mesu.apple.com/assets/com_apple_MobileAsset_DictionaryServices_dictionary2/com_apple_MobileAsset_DictionaryServices_dictionary2.xml
這就是負責得到所有字典列表的檔案,是一個 XML 的 plist,裡面包含了所有字典的下載位置。
然後稍微找一下就可發現裡面的簡體英漢字典:
- http://appldnld.apple.com/iOS7/091-9371.20130822.Punk3/com_apple_MobileAsset_DictionaryServices_dictionary2/a13b6582698ce2cf95d177472c2d988ec0a2c15d.zip
下載回來,解開,檢查一下發現應該跟以前的比起來沒什麼太大變化。
可是問題出現了,網路上面的 xml 是有 Signature 的,
好吧我就隨便改一改 xml ,然後丟到自己偽造的伺服器看看。
結果問題就出現了,因為 Signature 沒有簽對,系統不會讓你用你偽造的列表來抓字典檔
而會回去讀取這個檔案
/System/Library/PreinstalledAssets/com_apple_MobileAsset_DictionaryServices_dictionary2.xml
所以仍然得到原始的下載列表。(但是這個列表就沒有 Signature 了)
山不轉路轉,我於是直接把 zip 改成隨便一個預設字典檔案的名稱,結果發現仍然不能使用
因為偽造 zip 檔案的話, xml 裡面還有 zip 的 SHA-1 驗證碼,在下載完畢之後因為SHA1驗證不過而不給安裝...。
從這些現象我們可以看出兩件事情:
1. 未來 iOS 7 可能會增加更多的字典讓使用者下載,因為列表是可以上網抓的
2. 目前不能自己加字典進去,因為系統會檢查列表跟字典檔是否修改過
所以除了直接修改掉 /System/Library/PreinstalledAssets/com_apple_MobileAsset_DictionaryServices_dictionary2.xml(需JB之後才能得到)
或者破解 Signature,目前好像就沒有其他辦法了 QQ...
PS. 推友 n__ny 指出,可以把這些字典丟進去 OS X 裡面
只要你把 zip 下載下來解開,之後把 .dictionary 的檔案丟進去 Mac 的 /Library/Dictionaries 裡面就可以用了XD
發佈留言