Совместимость с песочницей (astra-shim)#
Перепакованная из deb программа нередко не запускается в песочнице по причинам,
которые не связаны с самим Flatpak. В deb-пакете пути зашиты в бинарник
абсолютными строками вида /usr/lib/myapp, а в песочнице содержимое лежит в
/app. Программа может вызывать apt, systemctl или другие команды
хоста, которых внутри песочницы нет. Исходников под рукой нет, пересобрать
бинарник нельзя.
astra-shim закрывает такие случаи снаружи: он перехватывает обращения к файловой системе и запуск процессов и подменяет их по таблице правил. Программа при этом не меняется.
Это временная мера. Правильное решение - привести программу к требованиям песочницы: научить её искать файлы относительно своего расположения или через переменные окружения и убрать вызовы хостовых команд. astra-shim нужен, пока такой правки нет или пока она невозможна, например для проприетарного ПО.
Из чего состоит раздел#
Как устроен перехват - два слоя перехвата, формат таблицы правил, что именно перехватывается.
Подключение к приложению - как подключить shim к приложению: файл правил, лаунчер и команда запуска, подбор правил через analyze.
Ограничения и уход от astra-shim - где shim работает, где не работает, чем расплачивается сборка и как уйти от него к штатной адаптации.