我正在尝试在自定义版本的Firefox for Android(Fennec)中加入扩展程序,以便在用户安装APK时,Fennec浏览器已经安装了扩展程序。
我正在使用Fennec v48.0b6的基线。值得注意的是,这是beta版本,虽然我不认为它应该有所作为。
这样一个过程的文档似乎确实存在,但我无法让它工作。这是Mozilla Wiki has a guide。它以及我发现的解决方案的其他提示表明我需要在Firefox工作区的某个地方使用“分发”文件夹。我有一个文件夹结构如下:
其中'firefox-48.0b6'是包含所有源目录的根文件夹,例如b2g,浏览器,chrome,mobile等。这匹配sample directory structure provided by Mozilla。
我已将以下行添加到我的mozconfig:
ac_add_options --with-android-distribution-directory="/data/workspaces/firefox/firefox-48.0b6/custom-dist"
正确跟踪绝对分布位置。如果此路径未指向分发,则在运行mach configure
时出现错误,因此必须正在读取。
扩展程序的XPI名称需要与扩展程序的install.rdf文件中给出的ID(如同一个Mozilla Wiki页面上所示)相匹配。我已经更改了install.rdf文件和XPI名称,以便它们匹配。
完成所有这些操作后,当我安装APK时,我仍然没有在附加组件列表中看到我的扩展程序。
我已经尝试了一些额外的东西(没有一个能解决我的问题):
MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER
标志更改为False。 Mozilla Wiki中提到了这一点。 Bugzilla似乎表明此版本中仍然存在is a bug,因此可能不值得进一步查询。MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER=1
更改为MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER=
因此,它不会被视为真正的价值。MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER
。最终,我还没有安装包含默认扩展程序的Android版Firefox。有几点可能是问题的根源,但我对这个过程肯定不够了解,即:
adb install
)。 这是否会影响分发是否适用? 我错过了什么才能让它发挥作用?
我已经意识到我在分发目录中还需要一个最小的preferences.json文件。但是,包括这个并没有解决问题...
答案 0 :(得分:0)
我知道适用于Android的IceCat移动浏览器是包含预装扩展程序的衍生产品。请记住,他们是基于ESR频道的,所以您可能需要稍微搞乱他们的构建脚本,但我要看看他们的实现。这是项目页面:
https://www.gnu.org/software/gnuzilla/
如果那不好,那么可以看看TOR firefox发行版(我很确定它们默认包含noscript)。
答案 1 :(得分:0)
我按照以下链接中提供的步骤操作, https://wiki.mozilla.org/Mobile/Distribution_Files 它有效..
重点是 - 确保使用附加组件install.rdf中指定的ID命名附加XPI。
如果您的扩展程序是最近构建的,则应用程序ID在扩展程序的manifest.json文件中提供。
这里提供了如何构建适用于Android的Firefox(fennec)的分步教程 https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_for_Android_build
希望这可以帮助某人。