Для владельцев роутеров

Поставить пакет из фида

Доверить ключ фида, добавить репозиторий, поставить пакет по имени. Одна команда делает всё три на любой версии; ниже те же шаги руками — на 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>. Полная формулировка здесь.