Для владельцев роутеров
Поставить пакет из фида
Доверить ключ фида, добавить репозиторий, поставить пакет по имени. Одна команда делает всё три на любой версии; ниже те же шаги руками — на 25.12 и новее это apk, на 24.10 и старее opkg, и общего у них тут нет ничего.
dropbear повыше и выиграть. Отзыва
ключей в apk нет. Ставьте ключ потому, что доверяете тому, кто держит фид, а не потому, что так
написано на странице.Одна строка, любая версия
wget -qO- https://repo.owfeed.org/subscribe.sh | sh
Скрипт смотрит на роутер: apk или opkg, какая архитектура, какая линия релизов. Дальше ставит ключ, добавляет репозиторий и делает так, чтобы оба пережили обновление прошивки. Запустите второй раз — ничего не задвоится. Если ваша версия из тех, для которых фид не публикует, он скажет об этом и остановится, а не подставит URL, который отдаст 404.
Пакеты он не ставит. Дальше: apk add luci-theme-footstrap или
opkg install на 24.10.
wget -O subscribe.sh https://repo.owfeed.org/subscribe.sh less subscribe.sh # ~65 строк, половина из них комментарии sh subscribe.shСкрипт генерирует
owfeed index из того же конфига, по которому разложен фид, поэтому
описать раскладку, которой у фида нет, он не может — а именно на этом другие фиды и спотыкались.
Читать его это не отменяет.Или руками: 25.12 и новее (apk)
# Для HTTPS нужны эти два. В стоковых образах 25.12 они есть, в кастомной сборке может не быть. apk add ca-bundle libustream-mbedtls # 1. Доверить ключ wget https://repo.owfeed.org/owfeed-packages.pem \ -O /etc/apk/keys/owfeed-packages.pem # 2. Добавить репозиторий — это URL самого файла индекса echo "https://repo.owfeed.org/releases/25.12/$(cat /etc/apk/arch)/packages.adb" \ > /etc/apk/repositories.d/owfeed-packages.list # 3. Сохранить оба файла при обновлении прошивки mkdir -p /lib/upgrade/keep.d printf '%s\n' /etc/apk/keys/owfeed-packages.pem \ /etc/apk/repositories.d/owfeed-packages.list > /lib/upgrade/keep.d/owfeed-packages apk update && apk add luci-theme-footstrap
Третий шаг обязателен. Сами по себе эти файлы sysupgrade не переживают, а пропавший ключ —
самая частая причина UNTRUSTED signature после обновления прошивки.
Или руками: 24.10 и старее (opkg)
# 1. Доверить ключ. ИМЯ ФАЙЛА обязано быть id ключа — opkg ищет его именно по имени. wget https://repo.owfeed.org/9040356b214084da \ -O /etc/opkg/keys/9040356b214084da # 2. Добавить репозиторий — здесь это URL КАТАЛОГА echo "src/gz owfeed-packages https://repo.owfeed.org/releases/24.10/$(. /etc/openwrt_release; echo $DISTRIB_ARCH)" \ >> /etc/opkg/customfeeds.conf opkg update && opkg install luci-theme-footstrap
Три вещи, на которых спотыкаются
| Не делайте так | Почему |
|---|---|
apk add ./package.apk | Установка файла напрямую пишет в /etc/apk/world пин на хеш содержимого. Этот файл переживает sysupgrade, и пакет больше никогда не обновится из фида. Добавьте репозиторий и ставьте по имени. |
| Рассчитывать, что Attended Sysupgrade перенесёт пакеты | owut не передаёт сторонние репозитории, а repository_allow_list на сервере пуст по умолчанию, что запрещает всё. После обновления фид придётся добавить заново. |
| Использовать URL фида с редиректом | apk не ходит по 30x (openwrt#17180). Если фид переехал, пишите новый URL напрямую. |
Что означает подпись, а что нет
Фид подписывает свой индекс, и доверие идёт именно оттуда: apk проверяет индекс по ключу, который вы поставили, а потом сверяет каждый пакет с хешем, записанным в индексе.
Это говорит: это те байты, которые опубликовал фид, и больше ничего. Это не значит, что программа безопасна, что она работает, что она законна там, где вы находитесь, или что кто-то смотрел, что она делает. Аккуратный фид проверяет подпись автора по заранее зафиксированному ключу и прямо пишет, что именно проверяет — owfeed-packages так и делает. Прочитайте такую страницу у любого фида, прежде чем ему довериться.
За то, что внутри пакета, отвечает его автор, а не фид.
Несёт ли пакет собственную подпись — решает фид. Блоки подписей в apk складываются, поэтому пакет может нести сразу и авторскую, и фидовую, а фид может и не добавлять свою, оставив файл автора ровно таким, каким он его собрал. На установку по имени это не влияет никак: роутер проверяет подписанный индекс.
owfeed-packages подписывает только индекс, поэтому вы ставите файл самого автора.
Как отключить фид
# apk rm /etc/apk/repositories.d/owfeed-packages.list rm /etc/apk/keys/owfeed-packages.pem rm -f /lib/upgrade/keep.d/owfeed-packages apk update # opkg — уберите строку src/gz, затем rm /etc/opkg/keys/9040356b214084da opkg update
Уже установленные пакеты останутся. Обновления к ним приходить перестанут.
apk info <name>.
Полная формулировка здесь.