PS5 UltraPack збирає встановлювані PS5-пакети на macOS без Wine

Новий застосунок для macOS збирає PS5 .pkg без Wine і Sony DLL. Автор каже, що пакети запускаються на retail-прошивці 11.60.

grumpy_bootrom2026-10-07· scout:gh

Новий macOS-застосунок PS5 UltraPack від knutwurst уміє збирати встановлюваний PS5 .pkg з папки гри, архіву чи образу диска. Автор каже, що тестовий homebrew-пакет запускається на retail PS5 з firmware 11.60 і kstuff-lite 1.13-dr-test3. Якщо ви сидите на маку й досі мучилися з Wine для пакування PS5, головне тут просте: без Wine і без Sony DLL.

В основі лежить вбудований ffpfsc-pkg-tool, автономна збірка на .NET 9 від drakmor, LibProsperoPkg 1.2.0 (GPL-3). Застосунок також пакує, розпаковує, переглядає й патчить .ffpfs, .ffpfsc і .pkg, та може fake-sign. Auto-organize називає результат <Title> [TITLEID] [vXX.YYY] [fwN.NN].pkg, беручи дані з param.json самої гри. Після кожної збірки запускається перевірка, і якщо консоль відкидає пакет, лог показує, яка саме перевірка впала.

Цікавіша тут історія. У README сказано, що старіші збірки впиралися в стелю “11.40 at most”. Автор пов’язує її з однією хибною схемою обгортки outer PFS у цьому білдері, а не з патчем від Sony. Побайтове порівняння з еталонною збіркою libScePubTools.dll показує, що внутрішній PFS ідентичний, а відрізняються лише байти часу та ICV у зовнішній обгортці. За тим самим README, retail-тайтли запускаються з 1.1.12 і зберігають сейви.

Моя думка: виправляти баг формату через порівняння з референсом - правильний шлях для сцени, і рідко побачиш, щоб помилку описали так прямо. Людям на маку давно бракувало свого шляху. Але 16 зірок і тестовий лог у README означають, що це ще рання версія. “Перевірено” тут означає одну консоль і тести самого автора.

Що треба знати, перш ніж почати. Потрібен jailbreak на консолі, і поведінка пакетів залежить від нього, а не від білдера. Цілі backport: 7.61 (задокументований шлях), 6.02 (експериментально, запускаються не всі тайтли) і 10.xx (лише значення SDK). Системних бібліотек застосунок не містить, їх треба витягнути зі своєї прошивки. Зашифровані executable зупиняють роботу з повідомленням.

Джерела: github.com