在安装Firefox 42或更新版本的Firefox中安装未签名的XPI
我正在尝试重新开发一个旧项目,这是Firefox的Android扩展,我正在开发。 我有两部电话,一部是私人电话,一部是我的工作。 在我的我有一个旧版本的Firefox(40)。 它的工作原理与之前一样。 但是,在我工作电话的升级版本(Firefox 46)中,我无法安装.xpi。 我总是看到文本为“Firefox阻止附加组件安装到您的设备上”的“Blocked addon”弹出窗口:
[ 1
我有首选项xpinstall.signatures.required
= false
。 但是,它似乎不工作。 我也启用了Android调试。 我正在这样做:
#4 - This will copy the XPI to the phone SD card.
adb push $OUTPUT_DIR/$APP_NAME.xpi /sdcard/$APP_NAME.xpi;
#5 - This will start the Firefox App with the XPI to install
adb shell am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT -d file:///mnt/sdcard/$APP_NAME.xpi -n $ANDROID_APP_ID/.App;
在旧版本的Firefox中它可以工作; 在新的一个,没有。 原因如下:
我们的第一个目标是让开发人员更容易地添加签名。 如果该API通过所有验证检查,则该API可以上传XPI并获取已签名的加载项。
和:
Firefox 48 :(从Firefox 46推出)。 Firefox for Desktop的发行版和Beta版本不允许安装未签名的扩展程序,且无需覆盖。 适用于Android的Firefox将强制执行附加签名,并将保留一个首选项 - 将在未来发行版中删除 - 以允许用户禁用签名强制执行。
但是我需要能够编程而不需要验证:每次我引入一点变化(甚至只是为了检查是否有效),都必须签署扩展程序,这是非常紧张的。
我已经尝试安装夜间版本,因为它是面向开发人员的。 我将xpinstall.signatures.required
更改为false
。 但是,行为是相同的信息。
那么,我们应该如何以这种方式发展呢? 这太不切实际了!
我使用MDN的漫游示例对此进行了测试。 我正在运行Firefox 48.0,发布版本。 这个答案假设xpinstall.signatures.required
在about:config
设置为false
。
如果直接导航到file:///
URL,则附件不会安装:
看起来,Firefox已经通过直接导航到file:///
链接(我还没有测试签名的扩展名)来禁用安装未签名的扩展。 因此,使用adb shell am start -a android.intent.action.VIEW
方法使用意图导致Firefox导航到file:///mnt/sdcard/extentionFile.xpi
URL只会显示“Blocked Add -on“对话框,但没有允许的选项,其中包含您的问题中的屏幕截图。 如果您手动输入网址,则此对话框相同。
您可以安装附件,而不需要对其进行签名:
您可以通过在Firefox中导航到包含.xpi文件的目录(例如file:/// mnt / sdcard /)来加载未签名的扩展名,然后单击/触摸该文件。
因此,对于adb
您会希望它打开目录,而不是尝试让Firefox直接打开文件。 基于你的问题,你想要使用的adb
命令是:
adb shell am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT -d file:///mnt/sdcard/ -n $ANDROID_APP_ID/.App;
在您的手机上,您需要选择$APP_NAME.xpi
文件。 您将看到一个或多个屏幕,您可以通过该屏幕单击来安装您的加载项。
这些是我在测试时捕获的屏幕。 要有一个空的目录,我用/mnt/sdcard/testing/
而不是/mnt/sdcard/
。
首先,我使用adb
导航到Firefox中的目录(这是为了方便,您可以通过电话的用户界面导航到它)使用以下命令:
adb" shell am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT -d file:///mnt/sdcard/testing/ -n org.mozilla.firefox/.App
这导致Firefox打开目录( file:///mnt/sdcard/testing/
):
点击/选择你的.xpi文件。 在这种情况下,这是view-source.xpi。
将显示“Blocked Add-on”对话框。 该对话框可以选择“允许”安装。 [您可以通过在about:config
xpinstall.whitelist.required
设置为false
来跳过此对话框。 但是,这仍然不会让你使用意图直接导航到文件,或者将其输入Firefox UI:]:
然后,询问您是否要安装未经验证的加载项的对话框:
之后,执行安装:
上一篇: Installing unsigned XPIs in Firefox for Android version 42 or newer