Установка неподписанных XPI в Firefox для Android версии 42 или новее

Я пытаюсь пересдать старый проект, расширение для Firefox для Android, которое я разрабатывал. У меня 2 телефона, личный и рабочий. У меня старая версия Firefox (40). Он работает точно так же, как раньше. Но в обновленной версии моего рабочего телефона (Firefox 46) я не могу установить .xpi . Я всегда вижу всплывающее окно «Заблокированный аддон» с текстом «Firefox предотвратил установку аддона на ваше устройство»:

[ 1

У меня есть предпочтение xpinstall.signatures.required = false . Но, похоже, не работает. У меня также включена Android Debug. Я делаю это:

  # 4 - Это скопирует XPI на SD-карту телефона. Adb push $ OUTPUT_DIR/$ APP_NAME.xpi/sdcard/$APP_NAME.xpi  ; # 5 - Это запустит приложение Firefox с XPI для установки оболочки adb 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 позволяет загрузить XPI и вернуть подписанное дополнение, если оно прошло все проверки.

И:

Firefox 48: (загружено из Firefox 46). Выпускная и бета-версии Firefox для ПК не позволяют устанавливать неподписанные расширения без переопределения. Firefox для Android будет принудительно подписывать надстройки и сохранит настройку — которая будет удалена в будущем выпуске — позволяющая пользователю отключить принудительную подписку.

Но мне нужно чтобы иметь возможность программировать без проверки: очень сложно подписывать расширение каждый раз, когда я вношу небольшое изменение (даже просто для проверки, работает ли что-то).

Я уже пытался установить ночная версия, потому что она предназначена для разработчиков. Я изменил xpinstall.signatures.required на false . Но поведение — то же самое.

Итак, как мы должны развиваться таким образом? Это так непрактично!


Я тестировал это на примере пошагового руководства от MDN. Я использовал Firefox 48.0, релизную версию. В этом ответе предполагается, что для xpinstall.signatures.required установлено значение false в about: config .

Надстройка не устанавливается, если перейти непосредственно к file:/// URL:
Похоже, Firefox отключил установка неподписанных расширений путем прямого перехода по ссылке file:/// (я еще не тестировал подписанные расширения). Таким образом, с помощью метода оболочки adb am start -a android.intent.action.VIEW с намерением заставить Firefox перейти к файлу :///mnt/ sdcard/extentionFile. xpi URL откроет только диалоговое окно «Заблокированное дополнение» без разрешения, снимок которого вы включили в свой вопрос. Это диалоговое окно будет таким же, как если бы вы вручную вводили URL.

Вы можете установить надстройку без подписи:

Вы можете загрузить беззнаковое расширение, перейдя в 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 .

Откроется диалоговое окно «Заблокированная надстройка». В этом диалоговом окне будет отображаться параметр «Разрешить» установку. [Вы можете пропустить это диалоговое окно, установив для xpinstall.whitelist.required значение false в about: config . Но это все равно не позволит вам установить путем прямого перехода к файлу с помощью намерения или ввода его в пользовательский интерфейс Firefox]:

Затем появится диалоговое окно с вопросом, хотите ли вы установить непроверенную надстройку:

После чего выполняется установка:



/firefox-for-android-addons

Надстройки, использующие API, описанные в этом документе, считаются устаревшей технологией в Firefox и будут удалены в Firefox 57. Не используйте эти методы для разработки новых надстроек — вместо этого используйте API WebExtensions. Если вы поддерживаете надстройку, в которой используются описанные здесь методы, подумайте над ее переносом для использования WebExtensions.

Этот репозиторий придерживается вокруг для справочных целей.

Коллекция модулей JS, примеров кода и шаблонных надстроек, которые помогут вам создавать надстройки для Firefox для Android.

См. Firefox для Android. Документация по надстройкам на MDN для руководств и справки по API.

Оцените статью
logicle.ru
Добавить комментарий