18 KiB
English · Русский
Ваш игровой магазин для PS5.
Восставший из мёртвых, собранный заново из собственного бинарника, с полностью открытым исходным кодом.
Установка · Возможности · Обновления · Решение проблем · Сборка своими руками
Note
Оригинальный проект Overdrive был закрыт, поэтому я декомпилировал последнюю выпущенную сборку, восстановил полный исходный код и собрал его заново.
Возможности
- Более 1800 игр для поиска, с подборками «Лучшие по оценкам», «Новые релизы» и отдельной рекомендованной игрой
- Просмотр всей библиотеки с фильтрами, сортировкой, оценками и размерами загрузок — всё видно сразу
- Загрузка прямо на консоль — во внутренний накопитель или на любой USB-накопитель, со скоростью и занятым местом в реальном времени
- Избранное, поиск с экранной клавиатурой и страница «Файлы», где видно, что лежит на накопителях, и можно это почистить
- 13 языков: английский, немецкий, испанский, французский, португальский (Бразилия), русский, индонезийский, японский, китайский (упрощённый), арабский, урду, хинди, бенгальский
- Обновляется сам: новая версия устанавливается прямо с консоли, без компьютера
- Сделано под геймпад: L1 R1 — переключение разделов, ✕ — выбрать, ○ — назад
Установка в четыре шага
Перед началом
Вам нужна взломанная PS5 с запущенным ShadowMount+ —
это payload, который сам устанавливает образы .exfat. Если при включении консоли ShadowMount+
показывает уведомление, значит всё готово. Также понадобятся USB-накопитель и компьютер.
|
Скачайте |
|
|
Скопируйте его на USB-накопитель в папку Накопитель должен быть отформатирован в exFAT — так отформатировано большинство накопителей из коробки, и именно этот формат читает PS5. |
|
|
Вставьте накопитель в PS5. ShadowMount+ проверяет наличие новых файлов каждые несколько секунд: он находит Overdrive, монтирует и устанавливает его, а по завершении показывает уведомление. Ничего нажимать не нужно. |
|
|
Откройте Overdrive с главного экрана. Ищите эту иконку. Приятной игры! |
Кроме того, файл можно перенести во внутренний накопитель консоли с помощью любого FTP-клиента —
тоже в папку homebrew: /data/homebrew/Overdrive.exfat.
Обновления
Overdrive нужно установить вручную только один раз. Когда выходит новая версия, приложение само сообщает об этом через несколько секунд после запуска:
- Появляется окно с номером новой версии и списком изменений. Нажмите «Установить».
- Overdrive скачивает обновление, проверяет его и ставит на место старого.
- Когда всё готово, приложение закрывается само. Откройте его снова — вы уже на новой версии.
Для обновления нужно около 600 МБ свободного места на накопителе, где лежит Overdrive.
Файл update.zip в каждом релизе — это тот самый пакет, который скачивает приложение; вам он
самому не нужен.
Поддержать проект
Overdrive бесплатный и с открытым исходным кодом. Если он вам нравится, спонсорство помогает мне его обновлять.
Решение проблем
Overdrive не появляется на главном экране
- Убедитесь, что ShadowMount+ запущен: при старте он показывает уведомление.
- Проверьте папку: она должна называться ровно
homebrewи лежать в корне накопителя, а не внутри другой папки. - Проверьте, что файл всё ещё заканчивается на
.exfat. Некоторые системы скрывают расширения: файл, переименованный вOverdrive.exfat.zipили распакованный в папку, найден не будет. - Подождите минуту: ShadowMount+ ждёт, пока файл полностью скопируется, и только потом устанавливает его.
После обновления приложение всё ещё показывает старую версию
Новая версия установлена, но консоль всё ещё держит в памяти старую. Перезагрузите консоль и откройте Overdrive снова; приложение само об этом сообщит, если такое случится дважды подряд.
Обновление сообщает, что недостаточно места
Обновление скачивается рядом с установленным приложением, поэтому на накопителе с Overdrive нужно около 600 МБ свободного места. Освободите место на этом накопителе и нажмите «Повторить». На этот момент ничего ещё не изменено.
Обновление сообщает, что не удалось заменить приложение
Установите вручную: скачайте Overdrive.exfat из
последнего релиза, закройте Overdrive и
скопируйте новый файл поверх старого в папку homebrew.
Как удалить Overdrive?
Сначала удалите Overdrive.exfat из папки homebrew, а затем удалите его иконку с главного экрана.
В обратном порядке ShadowMount+ снова найдёт файл и вернёт иконку на место.
Сборка своими руками
Что находится в этом репозитории
| Путь | Что это |
|---|---|
app/ |
Само приложение: исходники на JSX, состояние, ресурсы, данные каталога и app.json (title id PPSA99058, версия, возможности) |
ps5-react/ |
Фреймворк, на котором оно работает, взятый из half144/ps5-react |
packaging/make-exfat.sh |
Собирает образ exFAT, который устанавливает ShadowMount+ |
.github/workflows/build.yml |
Процесс сборки |
Как был восстановлен исходный код
Overdrive — это приложение на React, работающее на ps5-react,
и весь его JavaScript-бандл лежит открытым текстом внутри eboot.bin. Сборщик объединяет все модули
в одну область видимости, поэтому импорты между модулями превращаются в простые имена; поскольку
каждое имя верхнего уровня остаётся уникальным, можно снова определить, какой модуль объявляет это
имя. Так бандл удалось разбить обратно на его 137 исходных модулей с настоящими строками
import/export, сверяя результат с оригинальным бандлом, пока не совпала каждая связь импорта.
То, что сборщик отбрасывает, вернуть не удалось: большинство комментариев, синтаксис JSX (теперь это
вызовы вида jsx(View, {…})) и const/let (теперь var). На поведение приложения это никак не
влияет.
Сборка
Каждый push запускает сборку на ubuntu-24.04 с clang 18 и загружает Overdrive.exfat как артефакт
workflow; тег v* дополнительно публикует релиз с Overdrive.exfat и update.zip.
Та же сборка локально, на любом Linux с пакетами, которые устанавливает workflow (clang-18,
llvm-18, cmake, ninja-build, nodejs, npm, zlib1g-dev, build-essential,
pkg-config, unzip, curl, exfatprogs, а также Pillow из ps5-react/requirements.txt):
cd ps5-react
python3 tools/build_ps5.py --app-dir ../app --llvm /usr/bin
sudo ../packaging/make-exfat.sh dist/PPSA99058 ../Overdrive.exfat
При сборке закреплённые зависимости скачиваются в ps5-react/.deps, а папка приложения, .zip и
.receipt.json записываются в ps5-react/dist. Результат проверяется автоматически
(tools/verify.py), поэтому успешная сборка означает, что структура payload и подписи в порядке.
--llvm /usr/bin указывает на системный clang; по умолчанию в апстриме используется путь к LLVM
из Homebrew, поскольку поддерживаемая среда разработки — macOS.
Образ — это обычный том exFAT, корнем которого является папка приложения, с кластерами 64 КиБ и
меткой OVERDRIVE. Чтобы выпустить новую версию, поднимите версию в app/version.js и
app/app.json и отправьте тег v*: установленные приложения предложат обновление при следующем
запуске.
Исправления относительно оригинального ps5-react
Два исправления во встроенном фреймворке, оба в инструментах сборки и оба обнаружены при сборке на Linux:
ps5-react/tools/common.pyчитал строкуgit apply --summaryс фиксированным числом пробелов, из-за чего режим файла приклеивался к пути (100644 <путь>) и любая чистая выгрузка зависимости падала на первом же патче, создающем файл. Теперь строка разбивается по пробельным символам.ps5-react/tools/build_ps5.pyоткрывалdata.tar.zstиз закреплённого пакета LLVM черезtarfile, а тот читает zstd только начиная с Python 3.14, тогда как документированный минимум — 3.12. Теперь есть откат на командуzstd.
Больше во фреймворке ничего не изменено.
Благодарности
- MyLuxy — декомпилировал Overdrive, восстановил его исходный код и собрал заново.
- ps5-react — фреймворк, на котором всё работает.
- ShadowMount+ от drakmor — устанавливает приложение.
ps5-react/ распространяется под GPL-3.0-or-later и содержит собственные LICENSE,
LICENSE-ATTRIBUTION и NOTICE. Все уведомления о зависимостях копируются в notices/ внутри
собранного приложения, а ps5-react/docs/DEPENDENCIES.md перечисляет их с указанием источников.
Overdrive — неофициальный homebrew-проект, не связанный с Sony Interactive Entertainment и не одобренный ею. PlayStation и PS5 — товарные знаки Sony Interactive Entertainment.
Русский перевод сделан в форке Stintik-123.


