# Как установить Final Fantasy VII Recompiled на Android: APK, FFNx и настройка управления

> AI Release · @ai_release1 · https://ai-release.org/guides/kak-ustanovit-final-fantasy-vii-recompiled-na-android-a.html

## TL;DR
- Время выполнения: 40–60 минут (плюс время на копирование игровых данных; зависит от объёма вашей копии игры)
- Уровень сложности: Intermediate
- Понадобится: Android-устройство с включённой отладкой по USB, кабель, ADB (Android Platform Tools) на ПК, APK-сборка Final Fantasy VII Recompiled, легальная копия игры для извлечения данных, файловый менеджер на телефоне, сборка FFNx (графический слой для PC-версии игры — сторонний рендерер с поддержкой модов)
- Точные номера версий Android, имена пакета и пути к данным **сверьте с документацией проекта FF7 Recompiled и FFNx** — в этом гайде они даны как плейсхолдеры `<package.name>` и `<путь-к-APK>`

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/kak-ustanovit-final-fantasy-vii-recompiled-na-android-a-ru-1.jpg?v=1794473636)

- Android-устройство. Минимальную поддерживаемую версию ОС сверьте с требованиями проекта: команда проверки вашей версии приведена в Шаге 1.
- Отладка по USB: «Настройки» → «О телефоне» → 7 тапов по «Номер сборки» → «Для разработчиков» → «Отладка по USB» = вкл.
- Разрешение установки из неизвестных источников для вашего файлового менеджера/ADB (общий принцип установки APK вне Google Play разобран в [этом руководстве](https://ai-release.org/guides/poshagovoe-rukovodstvo-kak-opublikovat-chastnoe-prilozh.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide)).
- ADB на ПК (пакет Android Platform Tools) + драйвер устройства.
- Свободное место: минимум «размер APK + размер игровых данных + запас». Точную цифру не выдумываем — измерьте объём своей копии игры и сверьте с `df -h /sdcard` (Шаг 1).
- Легальная копия Final Fantasy VII (PC-версия) — из неё берутся игровые файлы. Гайд не содержит ссылок на скачивание игры.
- Архив со сборкой FFNx и её конфиг (файл вида `FFNx.toml` — точное имя и расположение **сверьте с документацией FFNx**).
- 15 минут на проверку контрольной суммы загруженного APK — это отсекает половину проблем с установкой.

## Шаг 1. Проверка устройства, ADB и места
**Что сделать:** подключить телефон, подтвердить авторизацию ПК, снять базовые параметры устройства.

**Зачем:** до установки нужно знать три вещи — что ADB видит телефон, какая у него архитектура CPU (ARM или x86) и сколько свободно места. Если APK собран под другую архитектуру, установка упадёт с ошибкой, которую легко принять за «битый файл».

```bash
adb devices
adb shell getprop ro.product.cpu.abi
adb shell getprop ro.build.version.release
adb shell df -h /sdcard
```

**Пример вывода:**
```
List of devices attached
R58XXXXXXXX     device
arm64-v8a
14
/dev/frag/emulated  108G  46G  62G  43% /storage/emulated
```

На экране телефона при первом подключении появится диалог «Разрешить отладку по USB?» — нажмите «Разрешить».

**Как проверить:** в `adb devices` рядом с серийным номером стоит слово `device` (не `unauthorized` и не `offline`), архитектура — `arm64-v8a` или `armeabi-v7a`, а в `df -h` свободного места больше, чем occupy ваши игровые данные.

Если `unauthorized` — отключите и подключите кабель, подтвердите диалог заново. Если список пуст — проблема в драйвере или кабеле, а не в APK.

Дополнительно сверьтесь со списком требований проекта и с порядком запуска других Android-портов — логика «данные игры + собственный лаунчер» там та же: [порты NVIDIA SHIELD на Android](https://ai-release.org/guides/kak-zapustit-metal-gear-solid-2-hd-i-drugie-porty-nvidi.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

## Шаг 2. Установка APK и размещение игровых данных с FFNx
![Иллюстрация к разделу «Шаг 2. Установка APK и размещение игровых данных с FFNx»](https://ai-release.org/guides/img/kak-ustanovit-final-fantasy-vii-recompiled-na-android-a-ru-2.jpg?v=1794473644)

**Что сделать:** установить APK, затем скопировать игровые файлы и файлы FFNx в приватную папку приложения.

**Зачем:** APK — это только движок и оболочка. Без данных игры (текстуры, звук, скрипты) приложение запустится и закроется, а FFNx без корректного конфига не сможет инициализировать рендерер.

1. Проверьте целостность APK.
```bash
sha256sum <путь-к-APK>/FF7Recompiled.apk
```
Сравните хеш с тем, что указан на странице загрузки. Не совпал — скачайте файл заново.

2. Установите пакет.
```bash
adb install -r <путь-к-APK>/FF7Recompiled.apk
```
Ожидаемый вывод: `Success`. Флаг `-r` переустанавливает поверх существующей версии, сохраняя данные.

3. Узнайте имя установленного пакета — оно нужно для всех дальнейших путей.
```bash
adb shell pm list packages > packages.txt
```
Затем откройте `packages.txt` и найдите строку с названием проекта. В PowerShell то же самое:
```powershell
adb shell pm list packages | Select-String -Pattern "ff7"
```
Ожидаемый результат: `package:com.<package.name>`.

4. Скопируйте игровые данные и FFNx в приватную папку приложения.

| Что | Куда | Пример команды |
|---|---|---|
| Игровые данные | `/sdcard/Android/data/<package.name>/files/` | `adb push <локальная-папка-данных>/. /sdcard/Android/data/<package.name>/files/` |
| FFNx | та же папка (подпапка, указанная в документации FFNx) | `adb push FFNx/. /sdcard/Android/data/<package.name>/files/` |
| Конфиг FFNx | корень данных приложения | `adb push FFNx.toml /sdcard/Android/data/<package.name>/files/FFNx.toml` |

Точную структуру подпапок (где именно FFNx ждёт свои файлы) **сверьте с документацией FFNx**: у разных сборок она отличается.

**Как проверить:** файлы видны на устройстве.
```bash
adb shell ls /sdcard/Android/data/<package.name>/files/
```
В выводе должны быть каталоги с игровыми данными и файл конфига FFNx. Пустой вывод или `No such file or directory` — значит данные ушли не туда; проверьте имя пакета из пункта 3.

Почему это работает: Android даёт приложению полный доступ только к своей папке `Android/data/<package.name>/files/`, поэтому файлы кладутся именно туда, а не в корень `/sdcard/`.

## Шаг 3. Первый запуск, проверка рендера и настройка управления
![Иллюстрация к разделу «Шаг 3. Первый запуск, проверка рендера и настройка управления»](https://ai-release.org/guides/img/kak-ustanovit-final-fantasy-vii-recompiled-na-android-a-ru-3.jpg?v=1794473653)

**Что сделать:** запустить приложение, убедиться, что FFNx подхватил конфиг, и назначить управление.

**Зачем:** успешная установка не гарантирует, что игра стартует: если FFNx не нашёл данные или не смог создать графический контекст, вы увидите чёрный экран или вылет.

1. Запустите приложение и одновременно смотрите лог.
```bash
adb logcat -c
adb shell monkey -p <package.name> -c android.intent.category.LAUNCHER 1
adb logcat > ff7_log.txt
```
Первый запуск может занять дольше обычного — идёт чтение файлов игры.

2. Проверьте, что в логе нет фатальных ошибок Java/нативного слоя:
```bash
grep -i -E "FATAL|FFNx|error" ff7_log.txt
```
В PowerShell: `Select-String -Path ff7_log.txt -Pattern "FATAL|FFNx|error"`.

**Как проверить:** на экране появилось меню игры (или интро), а в логе нет строки `FATAL EXCEPTION`. Если картинка есть, но звука нет — вопрос к аудионастройкам, а не к установке.

3. Настройте управление. Встроенный оверлей управления (экранные кнопки) обычно включается в меню настроек самого приложения или через конфиг FFNx. Конкретные имена параметров **сверьте с документацией проекта**: они меняются между сборками. Практический приём — задать в конфиге файл маппинга кнопок и проверить его применение по логу.

Геймпад подключается по Bluetooth и определяется системой как HID-устройство; после подключения перезапустите игру, чтобы она увидела контроллер при старте.

4. Зафиксируйте рабочую конфигурацию: сделайте резервную копию конфига.
```bash
adb pull /sdcard/Android/data/<package.name>/files/FFNx.toml ./FFNx.backup.toml
```

## Возможные проблемы и решения
**Проблема. APK не устанавливается — «пакет не разобран»**
- Ошибка: `Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]` или на телефоне `There was a problem parsing the package`
- Причина: файл скачан не полностью (обрыв загрузки) либо APK собран под минимальную версию Android выше вашей.
- Решение: сравните `sha256sum <путь-к-APK>/FF7Recompiled.apk` с хешем со страницы загрузки, при несовпадении перекачайте файл. Если хеш совпал — проверьте `adb shell getprop ro.build.version.release` и сверьте с минимальной версией ОС в требованиях проекта.

**Проблема. Установка отклонена из-за архитектуры**
- Ошибка: `Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]`
- Причина: в APK есть только нативные библиотеки под другую архитектуру, чем у устройства (например, сборка под ARM на x86-эмуляторе).
- Решение: сверьте `adb shell getprop ro.product.cpu.abi` с поддерживаемыми архитектурами сборки. На эмуляторе с x86 запускайте ARM-сборку только если эмулятор умеет трансляцию, иначе тестируйте на реальном устройстве.

**Проблема. Игра не видит данные / вылет при старте**
- Ошибка в логе: `java.io.FileNotFoundException: /storage/emulated/0/...: open failed: EACCES (Permission denied)`
- Причина: файлы игры положены в общую память (`/sdcard/`), к которой приложение без разрешений не имеет доступа, либо в неверную папку.
- Решение: перенесите данные в приватный каталог и проверьте содержимое:
```bash
adb shell ls /sdcard/Android/data/<package.name>/files/
adb push <локальная-папка-данных>/. /sdcard/Android/data/<package.name>/files/
```
После переноса очистите кеш приложения: «Настройки» → «Приложения» → <название игры> → «Очистить кеш» (не «Очистить данные», иначе снесутся настройки).

## Резюме и следующие шаги
Вы установили APK, разместили игровые данные и FFNx в приватной папке приложения и подтвердили запуск по логу. Дальше настройте маппинг кнопок под свой геймпад и сохраните резервную копию `FFNx.toml`, чтобы не повторять конфигурацию после обновлений.

## FAQ
**Нужен ли root для установки Final Fantasy VII Recompiled?**
Нет. Установка через ADB и копирование файлов в `/sdcard/Android/data/<package.name>/files/` работают на обычном устройстве с включённой отладкой по USB. Если конкретная сборка требует иного — это указано в её документации.

**Где взять игровые данные?**
Из вашей легальной копии PC-версии игры. Гайд описывает только размещение уже имеющихся файлов и не содержит ссылок на загрузку игры.

**Почему игра вылетает сразу после логотипа?**
Чаще всего не найден конфиг FFNx или данные лежат не в той папке. Проверьте `adb shell ls /sdcard/Android/data/<package.name>/files/` и строки с `FATAL` в выводе `adb logcat`.

**Можно ли играть с геймпадом?**
Да, контроллер подключается по Bluetooth и определяется Android как HID-устройство. Подключите его до запуска игры и проверьте маппинг кнопок в настройках приложения или конфиге FFNx.
