YukariBox HelpПомощь SourceИсходники

DocumentationДокументация

Getting startedНачало работы

Android asks whether the browser or file manager you downloaded the APK with may install apps — not whether the whole system may. Allow that one app, then open the file. Play Protect will warn you about an APK that did not come from the store; it does that for every sideloaded app and it is not a finding about this one.Android спрашивает, можно ли устанавливать приложения тому браузеру или файловому менеджеру, которым вы скачали APK, — а не системе целиком. Разрешите именно ему и откройте файл. Play Protect предупредит про APK не из маркета: он так делает для любого установленного вручную приложения, и это не вывод об этом конкретном.

Add a server before you connect: paste a subscription link, or add one by hand. On the first connect Android itself asks permission to create a VPN — that dialog belongs to the system, and nothing moves until you accept it.Сначала добавьте сервер: вставьте ссылку на подписку или добавьте узел вручную. При первом подключении разрешение на создание VPN спрашивает сама система Android — этот диалог принадлежит ей, и до вашего согласия ничего не идёт.

Beyond the app there are three ways in: a Quick Settings tile, a home-screen widget, and launcher long-press shortcuts for connect, disconnect and toggle.Кроме самого приложения есть три входа: плитка в быстрых настройках, виджет на домашнем экране и ярлыки по долгому нажатию на иконку — подключить, отключить, переключить.

Servers and groupsСерверы и группы

The tabs above the list are your groups. A group is either a subscription (it has a URL and refreshes) or a manual one you fill yourself. + creates a group; the menu beside it holds everything else, including adding a single server. A long press on a tab opens that group’s own update, edit and delete actions.Вкладки над списком и есть ваши группы. Группа — это либо подписка (у неё есть URL и она обновляется), либо ручная, которую вы наполняете сами. + создаёт группу; в меню рядом лежит всё остальное, включая добавление одного сервера. Долгое нажатие на вкладку открывает действия этой группы: обновить, изменить, удалить.

Nine protocols are parsed from share links: VLESS, VMess, Trojan, Shadowsocks, Hysteria2, TUIC, WireGuard, SOCKS and HTTP. Shadowsocks is restricted to AEAD ciphers on purpose, and a link whose security value is unrecognised resolves to TLS rather than to nothing — an unreadable link fails secure, not plaintext.Из share-ссылок разбираются девять протоколов: VLESS, VMess, Trojan, Shadowsocks, Hysteria2, TUIC, WireGuard, SOCKS и HTTP. Shadowsocks намеренно ограничен AEAD-шифрами, а ссылка с нераспознанным значением security трактуется как TLS, а не как его отсутствие: нечитаемая ссылка ломается в безопасную сторону, а не в открытый текст.

Tapping a server’s ping plate re-tests that one server; the menu’s Test every server sweeps the group with a progress counter and a Stop. A single test deliberately does not re-sort the list — it answers “is this one alive”, and a row that moved under your finger is a tap on the wrong server.Нажатие на плашку пинга перепроверяет один сервер; Проверить все серверы из меню проходит по группе со счётчиком и кнопкой «Стоп». Одиночная проверка намеренно не пересортировывает список: она отвечает на вопрос «этот жив?», а строка, уехавшая из-под пальца, — это нажатие на другой сервер.

Three orders: Keep my order, Sort by ping, Sort by name. Starred servers float to the top in all three, including the manual one, and a star survives a subscription refresh because it is matched by connection identity rather than by position. Untested, in-flight and failed probes all sink to the bottom instead of ranking as nought milliseconds.Три порядка: сохранить мой, по пингу, по имени. Отмеченные звездой всплывают наверх во всех трёх, включая ручной, и звезда переживает обновление подписки, потому что сопоставляется по параметрам соединения, а не по позиции. Непроверенные, проверяемые и не ответившие уходят вниз, а не встают как «ноль миллисекунд».

A long press on a server opens edit, clone, move to another group, copy link, show QR and delete. The plate on the left is the country, read from the name; a NO TLS badge means the link carries no transport encryption.Долгое нажатие на сервер открывает изменение, клонирование, перенос в другую группу, копирование ссылки, показ QR и удаление. Плашка слева — страна, прочитанная из имени; значок БЕЗ TLS означает, что ссылка не несёт транспортного шифрования.

ConnectingПодключение

The big circle is the tunnel and there is exactly one per screen. Tapping it while it is connecting cancels the attempt rather than being ignored — a dead node otherwise costs you all three retries and their backoff. While a teardown is in flight the control is disabled, because a tap there would be a new connect racing the stop.Большой круг — это туннель, и на экране он ровно один. Нажатие во время подключения отменяет попытку, а не игнорируется: иначе мёртвый узел стоит вам всех трёх повторов и их паузы. Пока идёт разрыв, элемент выключен — нажатие там было бы новым подключением, обгоняющим остановку.

Full VPN takes the whole device: a TUN interface, everything routed through it except what you exclude. Local proxy only serves SOCKS and HTTP on 127.0.0.1 and owns no tunnel, so only apps you point at it are proxied. That inbound is password-protected by default, because an open one on this device is usable by every app on it — the password is generated on first use and shown on the profile screen.Полный VPN забирает всё устройство: интерфейс TUN, весь трафик через него, кроме того, что вы исключили. Только локальный прокси отдаёт SOCKS и HTTP на 127.0.0.1 и не владеет туннелем, поэтому проксируются лишь приложения, которые вы на него направили. Этот вход по умолчанию защищён паролем, потому что открытый доступен любому приложению на устройстве; пароль генерируется при первом использовании и показан на экране профиля.

Tapping a different server while connected moves the live session onto it instead of making you disconnect first. Tapping the one you are already on does nothing, rather than tearing down a working session and rebuilding it.Нажатие на другой сервер во время работы переносит живую сессию на него, а не требует сначала отключиться. Нажатие на тот, на котором вы уже сидите, ничего не делает, а не разрывает работающую сессию, чтобы собрать её заново.

Three optional behaviours, all off by default: Auto-connect on network available, Reconnect on network change for Wi-Fi to mobile handovers, and Auto-switch to fastest node, which probes alternatives when the chosen node dies. The kill switch is armed before that probing starts, not after it finishes.Три необязательных поведения, все выключены по умолчанию: автоподключение при появлении сети, переподключение при смене сети для перехода Wi-Fi — мобильная связь и автопереключение на быстрейший узел, которое пробует альтернативы, когда выбранный узел умер. Аварийная блокировка встаёт до начала этих проб, а не после их конца.

What protected does and does not meanЧто значит «защищено» — и чего не значит

The kill switch is always on. When the reconnect attempts run out, the app holds the tunnel open with no core behind it and no DNS server of its own except the one inside the tunnel, so a query is captured and dropped rather than falling back to the network you are trying to avoid. There is no setting to disable this. The card that appears offers to release the block, and that is the only place it is offered — the power control stops the session, it does not open the tunnel into the clear.Аварийная блокировка включена всегда. Когда попытки переподключения исчерпаны, приложение держит туннель открытым без ядра за ним и без собственного DNS-сервера, кроме того, что внутри туннеля: запрос перехватывается и отбрасывается, а не уходит в сеть, которой вы пытаетесь избежать. Настройки, чтобы это отключить, нет. Появляющаяся карточка предлагает снять блокировку, и это единственное место, где такое предлагается: круг останавливает сессию, а не открывает туннель наружу.

If the blocking tunnel itself cannot be installed, the app reports not protected rather than claiming traffic is blocked, and stays in the foreground holding that notice until you stop it yourself.Если сам блокирующий туннель установить не удалось, приложение сообщает не защищено, а не утверждает, что трафик заблокирован, и остаётся на переднем плане с этим уведомлением, пока вы не остановите его сами.

“Protected” is a claim about coverage as well as about state. In Local proxy only there is no tunnel, and with per-app routing in include mode everything you did not list goes out directly — in both cases the status line says so instead of saying you are protected.«Защищено» — это утверждение и о состоянии, и о покрытии. В режиме только локальный прокси туннеля нет, а при маршрутизации по приложениям в режиме включения всё, что вы не перечислили, идёт напрямую — в обоих случаях строка состояния говорит именно это, а не что вы защищены.

The tunnel always captures IPv6, whatever the IPv6 setting says. Android only diverts address families that have a route, so leaving v6 unrouted would let every v6 packet walk past the tunnel. Turning IPv6 off is implemented as an IPv4-only DNS strategy instead.Туннель всегда захватывает IPv6, что бы ни стояло в настройке IPv6. Android перенаправляет только те семейства адресов, у которых есть маршрут, поэтому оставить v6 без маршрута значило бы пустить каждый v6-пакет мимо туннеля. Выключение IPv6 реализовано как стратегия DNS «только IPv4».

The settings screen, section by sectionЭкран настроек, раздел за разделом

Connection. Service mode chooses full VPN or local proxy only. Node in notification puts the server’s name in the ongoing notification. Animations off removes transitions rather than shortening them; the busy sweep stays, because it is how the app says it is working.Подключение. Режим службы выбирает полный VPN или только локальный прокси. Узел в уведомлении выводит имя сервера в постоянное уведомление. Выключенные анимации убирают переходы, а не укорачивают их; вращение занятости остаётся — это то, чем приложение сообщает, что работает.

DNS. Remote DNS resolves for proxied traffic, Direct DNS for traffic that bypasses the tunnel; both take DNS-over-HTTPS URLs and both have presets that are reachability-checked before they are offered. DNS routing sends queries through the matching path. A preset named by hostname needs to be resolvable itself, and the app bootstraps that for you.DNS. Удалённый DNS разрешает имена для проксируемого трафика, прямой DNS — для того, что идёт мимо туннеля; оба принимают адреса DNS-over-HTTPS, и у обоих есть готовые серверы, доступность которых проверяется до того, как их предложат. Маршрутизация DNS направляет запросы по соответствующему пути. Готовый сервер, названный по имени, должен и сам быть разрешим — приложение раскручивает это за вас.

Network. MTU of the TUN interface, TUN stack and IPv6 mode. Leave the stack on gVisor: the mixed stack routes TCP through the system stack, whose forwarder fails to bind on some devices — TCP dies silently while DNS keeps working, so some sites load and most do not. The other values are offered in sing-box’s own vocabulary on purpose, for anyone comparing configs.Сеть. MTU интерфейса TUN, стек TUN и режим IPv6. Оставьте стек на gVisor: смешанный стек ведёт TCP через системный стек, чей форвардер на части устройств не поднимается — TCP тихо умирает, а DNS продолжает работать, поэтому часть сайтов открывается, а большинство нет. Остальные значения намеренно даны в терминах самого sing-box, для тех, кто сверяет конфиги.

Behavior holds the three automatic actions described above. Subscription holds auto-update and its interval, the user agent sent when fetching a subscription, and the Connection test URL the latency probes use.Поведение содержит три автоматических действия, описанных выше. Подписка — автообновление и его интервал, user-agent для загрузки подписки и URL проверки связи, который используют пробы задержки.

Advanced. Allow insecure TLS stops certificates being verified — it exists because some providers ship broken chains, and it is a real reduction in what the tunnel protects you from. Serve the local proxy without a password is the opt-out described under Connecting; leaving it off is the right default.Дополнительно. Разрешить небезопасный TLS отключает проверку сертификатов — он существует потому, что часть провайдеров отдаёт битые цепочки, и это настоящее снижение того, от чего туннель вас защищает. Отдавать локальный прокси без пароля — это тот самый отказ, описанный в разделе о подключении; оставить его выключенным правильно.

RoutingМаршрутизация

Per-app proxy has two modes. In bypass mode everything goes through the tunnel except the apps you list. In proxy-only mode only the apps you list go through it and the rest of the device uses its ordinary connection. The default is everything through the tunnel with only this app itself excluded, so it never routes into its own tunnel.Прокси по приложениям имеет два режима. В режиме исключения через туннель идёт всё, кроме перечисленных приложений. В режиме «только эти» через туннель идут только перечисленные, а остальное устройство пользуется обычной сетью. По умолчанию через туннель идёт всё, кроме самого приложения, чтобы оно не маршрутизировалось в собственный туннель.

Routing rules take your own conditions by domain, IP range and port, each sent to proxy, direct or block. Every rule is sanitised before it reaches the core: a malformed CIDR or port stops the tunnel starting, and a rule whose only condition was invalid would become a rule matching everything — a broken direct rule like that would route your whole connection outside the proxy.Правила маршрутизации принимают ваши условия по домену, диапазону IP и порту, каждое — в прокси, напрямую или в блок. Каждое правило проверяется до того, как попадёт в ядро: испорченный CIDR или порт не дают туннелю подняться, а правило, у которого единственное условие оказалось неверным, стало бы правилом «подходит всё» — сломанное правило «напрямую» увело бы весь ваш трафик мимо прокси.

Two ready-made sets: a Russian-bypass preset and an ad-block preset. Bypass LAN keeps local addresses off the tunnel. Sniffing lets the core read the requested hostname out of the connection so domain rules can match traffic that arrives as an IP.Два готовых набора: обход для российских адресов и блокировка рекламы. Обход LAN оставляет локальные адреса вне туннеля. Сниффинг позволяет ядру прочитать запрошенное имя хоста из соединения, чтобы правила по домену срабатывали и на трафике, который приходит как IP.

Backup and restoreРезервные копии

A full backup writes every group, every server with its credentials, and your settings through the system file picker. It can be encrypted with a password; without one the file holds those credentials in the clear, and the app warns you before it writes one. There is also a plain link-list export that other sing-box clients can read.Полная копия записывает через системный выбор файла все группы, все серверы с их учётными данными и ваши настройки. Её можно зашифровать паролем; без пароля файл держит эти данные открытым текстом, и приложение предупреждает об этом до записи. Есть и простой экспорт списка ссылок, который читают другие клиенты sing-box.

A restored backup cannot change the shape of your protection. Service mode, the per-app plan, Bypass LAN and Allow insecure TLS are kept from this device and not taken from the file. A file someone talked you into importing could otherwise set proxy-only mode — which skips the VPN consent dialog and captures nothing — or reduce the tunnel to a one-app include list. Held back means your value stands, not that the default does.Восстановленная копия не может изменить форму вашей защиты. Режим службы, план по приложениям, обход LAN и разрешить небезопасный TLS берутся с этого устройства, а не из файла. Иначе файл, который вас уговорили импортировать, мог бы включить режим только-прокси — он обходит диалог согласия на VPN и ничего не захватывает — или сузить туннель до списка из одного приложения. «Берётся с устройства» значит, что остаётся ваше значение, а не значение по умолчанию.

An encrypted backup uses 600 000 PBKDF2-HMAC-SHA256 rounds and accepts between 100 000 and 1 000 000 from a file, so older exports still open while a crafted one can neither hang the import nor make the password cheap to guess.Зашифрованная копия использует 600 000 раундов PBKDF2-HMAC-SHA256 и принимает из файла от 100 000 до 1 000 000, так что старые экспорты всё ещё открываются, а подделанный не может ни подвесить импорт, ни сделать пароль дешёвым для перебора.

DiagnosticsДиагностика

Keep a journal is off by default, and off means nothing is written by anyone: no core log, no in-app journal. Turning it off again erases what was already there, because leaving the last session’s server names on disk under a switch that says nothing is kept would be the opposite of what you asked for.Вести журнал выключен по умолчанию, и выключен значит, что не пишет никто: ни лог ядра, ни внутренний журнал. Повторное выключение стирает то, что уже было, потому что оставить имена серверов прошлой сессии на диске под переключателем, который говорит, что ничего не хранится, было бы обратным тому, о чём вы просили.

The level picker appears only while the journal is on — a verbosity for a journal that keeps nothing is a control with no subject. The core learns about the switch when the next session starts, so reconnect if you need the connection itself recorded.Выбор уровня появляется только при включённом журнале: подробность для журнала, который ничего не хранит, — это элемент управления без предмета. Ядро узнаёт о переключателе при старте следующей сессии, поэтому переподключитесь, если нужно записать само соединение.

Everything recorded stays on the device, in the app’s private storage, and nothing is uploaded anywhere. Server names do appear in it, so treat a log you are about to send someone as something that identifies your servers.Всё записанное остаётся на устройстве, в приватном хранилище приложения, и никуда не выгружается. Имена серверов в нём есть, поэтому относитесь к логу, который собираетесь кому-то отправить, как к тому, что раскрывает ваши серверы.

When it does not workЕсли не работает

Some sites load and most do not. Check that TUN stack is gVisor. The mixed stack routes TCP through the system stack, whose forwarder fails to bind on some devices, and the failure looks exactly like this: DNS keeps answering while TCP silently dies.Часть сайтов открывается, а большинство нет. Проверьте, что стек TUN — gVisor. Смешанный стек ведёт TCP через системный стек, чей форвардер на части устройств не поднимается, и отказ выглядит ровно так: DNS отвечает, а TCP тихо умирает.

Nothing resolves. A DNS-over-HTTPS server named by hostname has to be resolvable before it can resolve anything; if you typed one by hand, try an IP-literal preset. An http:// DoH address is rejected on purpose — it would be cleartext DNS the system network policy cannot police, because the core dials its own sockets.Ничего не разрешается. Сервер DNS-over-HTTPS, названный по имени, должен сам быть разрешим, прежде чем сможет разрешать; если вы вписали такой вручную, попробуйте готовый сервер с IP-адресом. Адрес DoH на http:// отклоняется намеренно: это был бы открытый DNS, который системная сетевая политика проконтролировать не может, потому что ядро открывает свои сокеты само.

It will not connect at all. If the core failed to initialise when the app started, connecting is refused and the home screen says so above everything else — that is a broken install rather than a broken server. If a routing rule was rejected, the tunnel will not start until it is fixed; that is deliberate, because a rule with no valid condition would mean match everything.Вообще не подключается. Если ядро не инициализировалось при запуске приложения, подключение отклоняется и главный экран говорит это выше всего остального — это битая установка, а не битый сервер. Если правило маршрутизации отклонено, туннель не поднимется, пока его не исправят: это намеренно, потому что правило без единого верного условия значило бы «подходит всё».

It will not install. arm64-v8a and Android 9 or newer. The core ships as a prebuilt native library for one architecture; the others are not published rather than published untested.Не устанавливается. arm64-v8a и Android 9 или новее. Ядро поставляется готовой нативной библиотекой под одну архитектуру; остальные не выпускаются, а не выпускаются непроверенными.

Checking that the file is mineПроверка, что файл мой

The certificate fingerprint must match the one published in the repository. That proves the file was built with the owner’s key, which is a different question from the SHA-256 on the front page: the checksum shows the download arrived intact, the signature shows who built it.Отпечаток сертификата должен совпадать с опубликованным в репозитории. Это доказывает, что файл собран ключом владельца, и это другой вопрос, чем SHA-256 на главной: контрольная сумма показывает, что файл дошёл целым, подпись — кто его собрал.

apksigner verify --print-certs YukariBox-arm64.apk