Pipelight – 讓 Linux 原生 Chromium/Chrome 無縫支援 ActiveX 控制元件 (看! 網銀!) ... ...

贊 回覆發表於2014-03-01

工行網銀, Silverlight, 支付寶控制元件, 放開那個 Windows 虛擬機器, 讓 Wine 上吧~

無圖無真相:

基本的原理是, 利用 Chrome 裡已有的 npactivex (ActiveX for Chrome) 擴充套件, 配合 pipelight 提供的 npactivex NPAPI 外掛, 將 ActiveX 控制元件本身用 wine 執行, 並且無縫地嵌入 Chrome 網頁中.

因為此功能依然在活躍開發中 (今年 FOSDEM 2014 的一個碰撞產生的火花神馬的), 穩定版本的 pipelight 暫時沒有加入此功能. 大家如果想嚐鮮的話, 我下面介紹一下 Arch Linux 裡的安裝測試方法 (暫時只針對 64 位測試使用者哈):

2014/2/27 更新: 因為 pipelight 0.2.5 已經新增了 npactivex 外掛, 不再需要手動安裝 -git 的版本了.


1. 新增來自 pipelight 的第三方源到 /etc/pacman.conf:

[pipelight]
Server = http://repos.fds-team.de/stable/arch/$arch

2. 新增並授權 pipelight 開發者的軟體包簽名 PGP key:

sudo pacman-key -r E49CC0415DC2D5CA
sudo pacman-key --lsign-key E49CC0415DC2D5CA

3. 安裝 pipelight:

sudo pacman -Sy pipelight

4. 解鎖 pipelight 的 npactivex 外掛:

sudo pipelight-plugin --unlock npactivex

看到 "Plugin npactivex is now unlocked" 即為解鎖成功.

5. 啟用 npactivex 外掛

sudo pipelight-plugin --enable npactivex

看到 "Plugin npactivex is now enabled" 即為解鎖成功.

6. 啟動 chrome 瀏覽器,開啟 chrome://plugins, 應該可以看到以下內容:

ActiveX hosting plugin for NPAPI
ActiveX hosting plugin for NPAPI r37
Name: ActiveX hosting plugin for NPAPI
Description: ActiveX hosting plugin for NPAPI r37
Version:
Location: /usr/lib/pipelight/libpipelight-npactivex.so
Type: NPAPI
Disable
MIME types:
MIME type Description File extensions
application/x-itst-activex ActiveX (*.ocx)
.ocx
application/activex-manager ActiveXManager

如果看到下列錯誤:

Pipelight Error (npactivex)!
Something went wrong, check the terminal output

請從終端開啟 chromium/google-chrome, 觀察終端出錯日誌.

7. 安裝需要的 ActiveX 控制元件. 下面以工行控制元件為例:

7.1. 下載工行網銀控制元件安裝包:

wget http://www.icbc.com.cn/icbc/html/download/dkq/icbc_netbank_client_controls.exe

7.2. 安裝 mfc42 執行庫:

WINEPREFIX=~/.wine-pipelight winetricks -q mfc42

7.3. 安裝:

WINEPREFIX=~/.wine-pipelight wine icbc_netbank_client_controls.exe

故障排除: 執行

WINEPREFIX=~/.wine-pipelight wine uninstaller --list

如果輸出包含以下內容就說明安裝成功了, 否則說明以上某一步出錯了

{93156467-FD99-4A30-9CA5-8563F4BB8DB3}|||icbc_netbank_client_controls

8. 安裝 np-activex extension:

擴充套件可以從 Chrome Web Store 直接安裝, 地址:https://chrome.google.com/webstore/detail/activex-for-chrome/lgllffgicojgllpmdbemgglaponefajn/related (打不開請翻牆哦 :D)

9. 設定 np-activex extension:

開啟 chrome://chrome/extensions, 點選 "ActiveX for Chrome" 旁邊的 "選項" (Options), 瀏覽到 "ICBC工商銀行" 所在的條目, 將"已禁用"改為"已啟用".

10. 用 Chrome 開啟 https://mybank.icbc.com.cn/icbc/perbank/index.jsp 應該可以正常登陸工行網銀了 :D

支付寶控制元件的安裝過程基本一樣 (注意不要漏掉設定 WINEPREFIX 哦), 不過在 npactivex extension 的設定介面並沒有 Alipay 的選項. 分享一下我測試成功的規則哈:

Mode: WildChar
Pattern: https://*.alipay.com/*
User Agent: MSIE9
Other helper scripts: dynamic ieevent

最後, 感謝 Pipelight 專案. Pipelight 專案是兩位德國的大學生髮起的專案, 因最初目標是在瀏覽器裡無縫支援 Silverlight 而得名. 如果你願意表達對他們的感謝, 可以到以下連結為他們贈送 kudo:

https://www.ohloh.net/p/pipelight/contributors/3052248574201504
https://www.ohloh.net/p/pipelight/contributors/3052248574201570

感謝 npactivex 專案. npactivex 專案的開發者是 Chuan Qiu, 如果你願意表達對他的感謝, 可以向他捐贈, 連結是 http://code.google.com/p/np-activex/wiki/Donations

感謝 Wine 專案以及 Wine 專案背後的CodeWeavers公司, 如果你願意表達對他們的感謝, 可以購買商業版的 CrossOver 支援他們繼續為 Wine 做出更多貢獻:http://www.codeweavers.com/ 如果有足夠多的使用者要求, CrossOver 會整合 pipelight 解決方案, 方便更多 Linux 使用者 :3

附安裝 -git 版本的舊方法:

1. 安裝源裡的 mingw-w64 組, 全選安裝

2. 安裝 AUR/pipelight-git, 需要修改 PKGBUILD 的一些部分:

- 刪除依賴 mingw-w32-bin
- 在 ./configure 這一行末尾新增 --win32-static

3. 完成安裝, pipelight-git 的 wine-browser-installer 和 wine-silverlight 兩個依賴也來自 AUR. 

 

via:  http://blog.felixc.at/2014/02/pipelight-let-linux-native-chromium-chrome-support-activex-seamlessly/

相關文章