<!-- translated from docs/install.md, sha256 900d9a183a17 -->
# Установка

Как установить, обновить и удалить PlayGuard и что он записывает на SD-карту. После установки: [начало работы](https://guard.boreale.dev/ru/docs/getting-started.md).

## Где скачать

На выбор:

- **Homebrew App Store** / **App Store в sphaira** (тот же каталог) — Найдите *PlayGuard* и установите его. Новые версии подхватываются автоматически, после проверки: часто через несколько дней после GitHub. PlayGuard знает, что был установлен оттуда, и рекомендует обновляться через магазин.
- **Вручную** — Скачайте `playguard.zip` из [последнего выпуска](https://github.com/JigSawFr/PlayGuard/releases/latest) и распакуйте его в **корень** SD-карты. Приложение окажется в `sd:/switch/playguard/`, его файлы — в `sd:/config/playguard/`.
- **sphaira › GitHub** — Zip-архив выпуска уже содержит запись (`/config/sphaira/github/playguard.json`): после первой установки обновляйте через *GitHub* в sphaira.

Необязательный **модуль восстановления** (sysmodule) устанавливается из PlayGuard (*Консоль › Дополнительные модули* или *Защита › Нет доступа?*) или вручную из отдельного архива (`playguard-rescue.zip`): его тоже распакуйте в корень SD-карты, затем перезапустите консоль. Он окажется в `atmosphere/contents/4200000000505247/` и срабатывает, только когда его просит об этом файл `RESCUE`, — см. [Нет доступа?](https://guard.boreale.dev/ru/docs/troubleshooting.md#нет-доступа).

Затем откройте PlayGuard **поверх игры**, под пользователем родителя ([почему](https://guard.boreale.dev/ru/docs/compatibility.md#загрузчики-приложений)).

## Обновление

- **В PlayGuard:** *Настройки › Обновлять через* выбирает способ — в самом PlayGuard (он скачивает выпуск, проверяет его, заменяет себя и перезапускается), через sphaira, Homebrew App Store или вручную. Если включено *Проверять обновления ежедневно*, PlayGuard при наличии нового выпуска открывается на нём.
- **Модуль восстановления** следует версии PlayGuard: после каждого обновления снова распакуйте `playguard-rescue.zip` этого выпуска (или *Обновить* в уведомлении колокольчика *Модуль восстановления устарел*, или в *Консоль › Дополнительные модули*), затем перезапустите консоль.
- **Агент удалённой связи**, если он установлен, предлагается обновить при следующем запуске, когда в PlayGuard есть более новый ([Home Assistant](https://github.com/JigSawFr/PlayGuard/blob/main/docs/home-assistant.md#keep-the-link-up-when-playguard-is-closed), на английском).
- Настройки, история, профили и резервные копии сохраняются: они лежат в `sd:/config/playguard/`, а не рядом с приложением.

## Удаление

Удалите `sd:/switch/playguard/` (приложение) и, чтобы удалить и его файлы, `sd:/config/playguard/`; с дополнительными модулями — также `sd:/atmosphere/contents/4200000000505247/` (модуль восстановления) и `sd:/atmosphere/contents/4200000000504741/` (агент), либо сначала удалите их в *Консоль › Дополнительные модули*. Лимиты, PIN-код и ограничения принадлежат самой консоли: они **остаются на консоли**. Чтобы удалить и их, сначала воспользуйтесь *Защита › Удалить родительский контроль*.

## Файлы на SD-карте

Все они в `sd:/config/playguard/` (само приложение остаётся в `sd:/switch/playguard/`: если удалить или переустановить его, файлы сохранятся). Версии, которые хранили их рядом с приложением, перенесли их туда при первом запуске.

- **`config.json`** — Настройки (язык, тема, NTP-сервер, *Защитить PlayGuard PIN-кодом*…); все ключи описаны в [config.md](https://guard.boreale.dev/ru/docs/config.md) (на английском). Если файл не читается, он сохраняется как `config.json.bad` (предыдущий — как `.bad.1`), а настройки возвращаются к значениям по умолчанию; PlayGuard один раз сообщает об этом при запуске
- **`profiles/`** — Сохранённые профили лимитов времени игры
- **`exports/`** — Экспорт активности
- **`nand/<system>/`** — То, что относится к одной системе, у каждой из которых свой родительский контроль: `sysmmc/` для sysMMC, `emummc/` для emuMMC. Внутри: `history.json` — история изменений (последние 500, включая те, что консоль отклонила; если файл не читается, он сохраняется как `history.json.bad`, предыдущий — как `.bad.1`, а не перезаписывается, и PlayGuard один раз сообщает об этом); `state.json` — то, что нужно помнить для *Заблокировать все игры*, доп. времени, ожидающей повторной блокировки и выбора для прошивки ([config.md](https://guard.boreale.dev/ru/docs/config.md#state-kept-between-launches), на английском); `forwarders.json` — форвардеры, созданные PlayGuard; `watch.json` — что PlayGuard в последний раз видел на консоли, чтобы заметить изменения, сделанные без него ([config.md](https://guard.boreale.dev/ru/docs/config.md#watchjson); удалять его безопасно); `backups/` — резервные копии настроек (никогда не содержат PIN-код); `cache/` — последняя прочитанная игровая активность (все пользователи и каждый просмотренный пользователь), которая показывается сразу при следующем запуске, пока журнал читается заново. Файлы версии, в которой ещё не было этих папок, переходят к первой системе, на которой запустится PlayGuard
- **`cache/`** — Значки игр (`icons/`, не более 16 МБ, очищается при смене языка консоли), общие для всех систем, чтобы не читать названия и значки каждой игры заново при каждом запуске; заметки к выпускам Atmosphère, hekate, sys-patch и прошивки (`sys_notes.json`, для вкладки *Консоль*) и самого PlayGuard (для *О программе*); в режиме разработчика — список *Установить другую сборку* (`dev_builds.json`)
- **`github_token`** — Вход в GitHub для *Отправить отчёт…* и, в режиме разработчика, для *Установить другую сборку*; удаляется при выходе (*О программе › Помощь и диагностика › Аккаунт GitHub*, появляется после входа)
- **`gate.nro`**, **`gate-<hash>.nro`**, **`gate_*.txt`** — Ворота защищённых форвардеров (*Консоль › Форвардеры*): их программа, их свободные часы, часы, когда они никогда не открываются, и пауза после отказов, их попытки, пока PlayGuard их не прочитает, и сколько длится их заставка при запуске (`gate_wait.txt`, читается при каждом запуске)
- **`previous_build.json`**, **`boot_check.json`** — После установки сборки на место текущей: название заменённой сборки (она хранится рядом с `.nro` как `playguard.nro.previous`) и проверка следующего запуска (удаляется, как только появится первый экран)
- **`rescue_report.txt`** — Оставляется модулем восстановления после его срабатывания, пока PlayGuard не покажет его при запуске (нечитаемый отчёт удаляется, и PlayGuard сообщает об этом)
- **`rescue_nonce`** — Случайный вызов, на который модуль восстановления отвечает в своём отчёте, чтобы PlayGuard мог отличить написанный модулем отчёт от написанного вручную ([sysmodule/rescue/README.md](https://github.com/JigSawFr/PlayGuard/blob/main/sysmodule/rescue/README.md), на английском); новый при каждом запуске
- **`sync.conf`** — Только если настроен *Удалённый доступ*: настройки связи, включая пароль брокера (он никогда не попадает в отчёт или отправку)
- **`sync/`** — Только если используется *Удалённый доступ*: сохранённые профили для необязательного агента (`profiles.txt`); то, что он читает и записывает для одной системы, лежит в `nand/<system>/sync/` этой системы (записи, названия игр, что он изменил, его события). sysMMC и emuMMC используют общий `sync.conf`, но в Home Assistant это два устройства
- **`logs/`** — `reports/` — сохранённые отчёты диагностики (никогда не содержат PIN-код и серийный номер); `crashes/` — по файлу на каждый сбой (что остановило PlayGuard); `uploads/` — по интернет-ярлыку (`.url`) на каждый отчёт, отправленный в интернет; `play_timer/` — файлы таймера игры из инструментов разработчика. Сколько отчётов, файлов сбоев и ссылок хранить: *О программе › Помощь и диагностика* (по количеству, возрасту или размеру; самый новый остаётся всегда)

Подробнее — в [packaging/README.md](https://github.com/JigSawFr/PlayGuard/blob/main/packaging/README.md) (на английском).
