为ARM Chromium增加Flash和Netflix支持

最近在 Android 4.4 上通过 Linux Deploy 运行了 armhf 版本的 Ubuntu 14.04 系统,使用 Android XServer XSDL 作为 X11 服务器跑 LXDE 的效果还是可以的。在 Ubuntu 系统上安装了最新 Chromium 浏览器之后一般的使用看起来也没有什么问题了,但感觉 ARM 上的 Chromium 浏览器缺少 Flash 播放器支持还是有点遗憾的。

由于 Adobe 对 Linux 上的 Flash Player 不上心,x86 Linux 版本的 Flash Player 也只更新到 11.2 版本就不更新了,更郁闷的还是 Adobe 根本就没正式释放出 armhf 版本的 libflashplayer.so。还好 Google 为新的 Chrome 浏览器默认提供 PPAPI 形式的 Flash 替代老的 NPAPI 形式插件,并不断在继续更新,PPAPI 模式的 Flash 外挂插件也放到沙盒里运行保证浏览器安全性。

Google 虽然没有直接提供 armhf Linux 系统的 Flash 插件,但其力推的 ChromeOS 系统中却直接集成了 PPAPI Flash 插件,我们从 ARM 版本的 Chromebook 系统中导出对应的 libpepflashplayer.so 应该就可以在普通 armhf Linux 系统中使用。

首先从这个网址下载 ARM Chromebook 中导出的 PPAPI Flash 插件:

http://odroidxu.leeharris.me.uk/PepperFlash-12.0.0.77-armv7h.tar.gz

这个网站同时提供了 15.0.0.152 版本的 PPAPI Flash 插件,只是此版本的 Flash 插件需要 GLIBCXX_3.4.20 支持,Ubuntu 14.04 系统的版本才是 GLIBCXX_3.4.19 而无法使用,如果你使用的是更新版本的 Linux 系统可以直接下载使用 15.0.0.152 版本。

下载之后可以看到里面有 libpepflashplayer.so 文件,另外还有 ChromeOS 中同时增加的 libnetflixhelper.so 插件(提供 Netflix 媒体支持)。为方便起见,这里准备将 Flash 和 Netflix 支持同时在 ARM Linux 系统中开启。

首先切换为 root 账户将 libpepflashplayer.so 和 libnetflixhelper.so 文件放到 /usr/lib/chromium-browser/pepper 目录(没有则可以手工创建此目录)中,然后修改 /etc/chromium-browser/default 配置文件使 Chromium 浏览器在启动时自动加载对应的 PPAPI 插件:

# Options to pass to chromium-browser
IFS="	"
CHROMIUM_FLAGS="--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so	--ppapi-flash-version=12.0.0.77	--register-pepper-plugins=/usr/lib/chromium-browser/pepper/libnetflixhelper.so#Netflix Helper#Helper plugin for the Netflix application#1.0.3;application/x-ppapi-netflixhelper"

需要特别注意的是上面的 Chromium 浏览器参数中含有空格(Netflix 插件名称等),会导致 Chromium 启动脚本解析出错,所以这里需要修改 IFS 分隔符为 TAB 键,CHROMIUM_FLAGS 变量中多个参数也必须以实际的 TAB 键(不可使用空格)隔开的,否则 Chromium 启动运行时会出现参数错误的问题。

另外由于 Flash 插件默认就已经在 Chromium 浏览器的 PPAPI 插件白名单中,因此不需要通过特殊参数注册 PPAPI 插件,直接使用 --ppapi-flash-path 参数指定 PPAPI Flash 插件文件路径就可以使用了。Netflix 插件则不在白名单中(推测 ChromeOS 浏览器的白名单中已经默认包含 Netflix 了),必须使用 --register-pepper-plugins 参数注册插件才可以正常使用。

配置文件修改完成之后,没有什么问题的话以非 root 账户身份重启 Chromium 浏览器,在地址栏中输入:chrome://plugins 就可以看到当前加载的插件列表了。

Chromium插件列表

Chromium插件列表

如意料中 Flash 和 Neflix 插件已经加载成功了,下面直接找个 Flash 游戏网页测试下就可以了,Flash 视频的播放效果虽然在 armhf 系统下不咋地,但也是可以用起来了,玩的开心 ^_^





*