- A+
Mozilla 在昨天釋出了 Firefox 48 版本,雖然新功能中有令人期待已久的多程序(multi-process)特性,能夠讓火狐變得更加安全、穩定;但在這個最新的穩定版本中,也將會重新掃描使用中的擴充套件(extensions)是否有被官方套件簽章系統檢查、認證,如果開發者沒有這麼做的話,該未簽名認證的擴充套件將不再被允許使用。
一、前幾個 Firefox 版本的解決辦法
在 Firefox 48 以前的版本,我們可以透過在網址輸入 about:config,進入火狐自帶的設定編輯器去修改 prefs.js 檔,並將「xpinstall.signatures.required」值設為 false 來跳過擴充套件的驗證機制強行啟用。
二、現行 Firefox 48 之後的解決辦法:
在 Firefox 48 及未來的官方正式版本(stable)和測試(beta)版本,將不再提供上面的偏好設定值供使用者修改,如果想要繼續使用沒有認證過的火狐套件,還有以下若干方法。
A.使用官方提供的非正式版 Firefox:
-
長期維護版(ESR)- 針對企業和大型機關所提供長達一年的穩定版本,在此期間沒有新的特性,只提供安全性更新的長期維護版本,目前是 45.3,仍然可以透過上面敘述的辦法,修改 about:config 來使用未驗證的擴充套件 。
-
開發者版本(developer)- 給網頁、套件開發者使用的增強版本,提供了一些測試、調整和除錯功能,一般人當然並不需要考慮這個版本。
-
每夜版(Nightly editions)- 這是官方最不穩定的測試版本,完全就是為了實驗所打造的,沒有特別需求,不建議下這個版本。
-
無認證版(Unbranded Builds)- 如果想擁有官方版本 Firefox 的新特性,又想使用沒有驗證的擴充套件,無認證版是最推薦的版本,除了提供前幾版相同的偏好設定「xpinstall.signatures.required」可供修改,在其他方面也和正式版沒有什麼差異。
B.社群編譯版本
社群編譯版本,是指 Firefox 愛好者透過編譯工具和自訂參數的方式將開源的火狐程式碼編譯,來提升瀏覽器的效能。這些版本和官方的正式版(Stable)相去不遠,只是更增強了效能表現和提供額外的自訂模組。這邊要澄清一下,編譯版和安裝套件在打包之類的自訂版完全是兩回事,千萬不要被混淆了。
這邊會提到社群編譯版,當然是為了符合這篇主題「使用未簽名認證的擴充套」,以下是我推薦的三個效能不錯、擁有可攜帶模組(portable)的社群編譯版本:
-
Tete009 - 非常老牌,忘記從版本號 3 還是多少就在編譯,更新很快、非常即時,效能也挺不錯的。在 Firefox 48 中,提供上面提過的「xpinstall.signatures.required」參數,直接修改成 false 就能使用未驗證的套件。
-
lawlietfox - 這位台灣編譯者也是很穩定的長期更新,效能出類拔萃,穩定性也相當好,沒有特別偏好的編譯版我會推薦這個版本。在他的 48.0.1 中,直接移除套件認證機制,什麼都不用調,可以直接使用未驗證套件。
-
PcX Firefox - 我一直使用的就是 PcX 編譯的 Firefox,效能通常不是第一就是第二,偶爾會提前修一些 bug 外還提供了回收 ram 的機制,在前面幾個版本也可以使用未簽名認證套件。不過更新一向比上面兩個版本慢,到 目前為止還沒有 48 的版本。
需要將 Tete009、lawlietfox、PcX 等社群編譯 Firefox 中文化的話,可以到下方火狐官方的語言檔網址下載,網址中間的 48.0 是版本號,以後換版本改那個數字就行了:
下載完 xpi 檔安裝到 Firefox 後,接著在網址列輸入 about:config,進入 config 分頁,搜尋「general.useragent.locale」偏好,並將原來的參數「en-US」改為「zh-TW」,關掉重開 Firefox,就完成火狐中文化了。
C.自行新增 config.js 和 config-prefs.js
如果還是想在 Firefox 48 以上的官方正式版(stable)使用未簽名的擴充套件,可以採用「新增 config-prefs.js」和「自己幫沒有簽名驗證的擴充套件簽名」兩個辦法,因為後者只要一登錄就可能會影響到其他人,所以比較推在自己 Firefox 上修改的方式:
1.打開安裝 Firefox 程式安裝的資料夾,如果沒有使用攜帶版的話,資料夾會在:
-
32 位元版本:C:\Program Files(x86)\Mozilla Firefox\
-
64 位元版本:C:\Program Files\Mozilla Firefox\
2.打開記事本或任何文字編輯器,把下面這串複製貼上,並儲存成 config.js:
1 2 3 4 5 6 7 |
// try { Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {}) .eval("SIGNED_TYPES.clear()"); }
catch(ex) {} |
3.接著從 Firefox 程式安裝資料夾中進入 pref 資料夾:
-
32 位元版本:C:\Program Files(x86)\Mozilla Firefox\defaults\pref
-
64 位元版本:C:\Program Files\Mozilla Firefox\defaults\pref
4.在 pref 資料夾中一樣用文字編輯器新增 config-prefs.js 檔,把以下內容複製貼上:
1 2 |
pref("general.config.filename", "config.js"); pref("general.config.obscure_value", 0); |
然後重新啟動 Firefox,就可以使用未簽名的擴充套件,並且不會顯示警告了。
D.自己幫沒有簽名驗證的擴充套件簽名
最後一個透過 Mozilla 官方網站提供的頁面,為沒有簽名的擴充套件進行簽名驗證動作,如此一來即便是正式版的 Firefox 也不需要修改,就可以直接安裝使用。
需要注意的是就算勾選「不要在此網站上陳列我的附加元件」還是會佔用該套件 id,所以除非確認原者已經放生套件了,不然不建議這麼做,修改時也建議改個冷僻的名字避免造成他人困擾。
1、先連上此網頁,並登入 Firefox 帳號
2、登入後,進入步驟二,依照下圖中圖標 1 勾選「不要在此網站上陳列我的附加元件」,圖標 2 上傳你要簽名驗證的套件,圖標 3 平台勾選 Windows(視需求,其他也可以勾)
3.在步驟二中想要獲得簽名驗證的套件上傳前,我們還必須經過一些處理,以 ywzhaiqi 寫的 userChromeJS 套件為例:
-
下載 userChromeJS.xpi 到自己的電腦裡,並且解壓縮
-
用文字編輯器打開 install.rdf 檔,把內容中的 <em:id>、<em:name> 都改成別的,<em:maxVersion> 也改成 48 以上。
-
改完以後重新壓縮成 .xpi 檔。
如果成功會顯示以下畫面:
4.接著進入「步驟3: 產品描述」,在「提供簡短的摘要:」欄位隨便打幾個字就可以繼續了,然後就會直接跳到最後一個步驟,如以下畫面,點擊連結進入管理畫面就可以下載安裝了。
結語
這些就是目前我所知在 Firefox 48 含以上版本,使用未簽名擴充套件的解決辦法。當然如果可以的話尋找類似的替代品會是個更妥善的作法,畢竟久未維修的擴充套件可能帶來安全上的漏洞,或是拖慢了 Firefox 整體的效能。
不過說是這麼說,我自己也割捨不下像是上面舉例的 userChromeJS 之類順手,作者又已經很久沒維護半放棄的套件就是了。╮(╯▽╰)/
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫