Home Homebrew PSVIETHOA FPKG Builder: nuovo strumento cross-platform per creare ed estrarre FPKG su...

PSVIETHOA FPKG Builder: nuovo strumento cross-platform per creare ed estrarre FPKG su PS5

393
0

La console PlayStation 5 accoglie un nuovo strumento cross-platform sviluppato per creare ed estrarre file FPKG.


Si tratta di PSVIETHOA FPKG Builder, un tool pensato per semplificare la gestione dei pacchetti FPKG e offrire in un’unica applicazione diverse funzioni utili per chi lavora con giochi, immagini disco e contenuti destinati all’ecosistema homebrew della console.

Il programma è disponibile per PC Windows e macOS, compresi i Mac equipaggiati con processori Apple Silicon e quelli basati su Intel.

Il progetto è stato riscritto in C#/.NET 10 utilizzando Avalonia per l’interfaccia grafica, con l’obiettivo di proporre uno strumento moderno e utilizzabile su più piattaforme senza dipendere da una singola configurazione.

PSVIETHOA FPKG Builder permette di creare un FPKG partendo da diverse sorgenti, è possibile utilizzare una normale cartella di gioco contenente sce_sys, un’immagine disco .exfat, un’immagine compressa .ffpfsc oppure un progetto GP5.

In questo modo non è necessario preparare manualmente ogni componente prima di avviare la costruzione del pacchetto.

Il progetto utilizza LibProsperoPkg di Drakmor come motore per la generazione dei pacchetti e produce FPKG di debug basati su un’immagine FIH con byte di firma 0x00.

Si tratta quindi di pacchetti destinati ad una PS5 configurata per l’utilizzo della modalità debug, non di normali pacchetti retail installabili sulle console commerciali.

Tra gli aspetti più interessanti c’è il supporto alle immagini PS5. Il programma può gestire immagini .exfat organizzate attraverso partizioni MBR o GPT e supporta anche i container .ffpfsc.

In quest’ultimo caso l’immagine exFAT contenuta nel PFS viene decompressa durante la lettura, evitando la necessità di creare preventivamente un’immagine intermedia completa.

Inoltre, è possibile lavorare direttamente con i progetti GP5, sia utilizzando il layout Normal sia quello Flat.

Il programma mantiene le informazioni e i percorsi definiti all’interno del progetto, offrendo quindi una soluzione più pratica per chi dispone già di una struttura GP5 pronta per essere trasformata in un pacchetto.

Particolare attenzione è stata dedicata anche alla gestione dei file di grandi dimensioni. Prima della compilazione vengono analizzati metadati, icona e dimensioni dei contenuti, mentre il programma controlla lo spazio disponibile sulle unità temporanee e di destinazione.

Vengono inoltre individuati eventuali file temporanei o spazzatura generati dal sistema operativo.

Durante la creazione del pacchetto vengono visualizzati l’avanzamento dell’operazione, la velocità di elaborazione, la stima del tempo rimanente e i log.

Al termine della procedura viene effettuata una verifica della struttura FIH e del PFS esterno, con la possibilità di eseguire anche un controllo tramite SHA-256.

Per la compressione sono disponibili diversi preset, tra cui Fast, Standard, Smallest e Maximum. Il profilo Standard utilizza Kraken 4 ed è quello predefinito, mentre Smallest punta a ottenere pacchetti più compatti attraverso Kraken 7 Optimal, accettando però tempi di elaborazione decisamente più lunghi.

Il preset Maximum utilizza invece Kraken 9, PFS v3 e l’analisi automatica dello shuffle per spingere ulteriormente l’ottimizzazione.

Gli utenti più esperti possono intervenire manualmente anche sui parametri della compressione, modificando il livello utilizzato, il numero di thread e la dimensione dei blocchi Kraken.

Inoltre, è possibile scegliere tra PFS v2 e PFS v3, con supporto ai pattern di pre-compressione, all’analisi dello shuffle e all’ottimizzazione del layout fisico.

Il supporto PFS v3 richiede una PS5 con firmware 7.00 o superiore e il programma mostra un avviso quando viene selezionata questa modalità.

Su PC Windows è inoltre possibile utilizzare il motore Oodle attraverso libScePubTools.dll; quando Oodle non è disponibile, il programma passa automaticamente al codificatore Kraken integrato.

PSVIETHOA FPKG Builder non si limita però alla creazione dei pacchetti. Una delle funzioni più interessanti è infatti Extract PKG, che consente di aprire pacchetti esistenti e analizzarne il contenuto.

L’interfaccia permette di visualizzare gli header FIH e CNT, le informazioni presenti in param.json, l’icona e l’elenco dei file contenuti nell’immagine PPR-PFS.

È possibile scegliere singoli file o cartelle da estrarre oppure esportare direttamente i contenuti di sce_sys, compresi elementi come param.json, icon0.png e i dati PlayGo.

I pacchetti PLAINTEXT_NOAUTH possono essere letti direttamente, mentre quelli Native AES-XTS vengono prima decifrati nella cartella temporanea.

Il progetto comprende anche fpkg-cli, una versione utilizzabile dalla riga di comando che permette di effettuare operazioni di build, ispezione, verifica, pulizia, visualizzazione delle informazioni ed estrazione.

Questa componente può risultare particolarmente utile per chi vuole automatizzare la generazione dei pacchetti oppure integrare il programma all’interno di script e procedure personalizzate.

L’interfaccia è disponibile in inglese e vietnamita, con possibilità di cambiare lingua direttamente dal programma e conservare la preferenza scelta.

La distribuzione è inoltre pensata per essere semplice: non viene richiesta un’installazione separata di .NET e all’interno degli archivi sono disponibili sia l’applicazione grafica sia fpkg-cli.

Le prestazioni riportate dal progetto mostrano quanto il programma sia stato pensato anche per contenuti di grandi dimensioni.

Nei test pubblicati dagli sviluppatori, un gioco da 21,3 GB viene trasformato in un pacchetto di circa 8,86 GiB in 2 minuti e 13 secondi utilizzando il preset Standard. Con il profilo Smallest il risultato scende ulteriormente a circa 8,54 GiB, ma il tempo necessario aumenta fino a 12 minuti e 49 secondi.

Nel complesso, PSVIETHOA FPKG Builder si propone quindi come uno strumento piuttosto completo per l’ambiente PS5 homebrew.

La possibilità di creare ed estrarre FPKG, lavorare con cartelle di applicazioni, immagini EXFAT, container FFPFSC e progetti GP5, scegliere tra diversi livelli di compressione Kraken e utilizzare PFS v2 o v3 rende il progetto interessante sia per un utilizzo attraverso l’interfaccia grafica sia per chi preferisce lavorare da terminale.

Funzionalità

Area Dettagli
Sorgenti Una cartella dell’applicazione (contenente sce_sys) oppure un’immagine disco exFAT (.exfat) — volume semplice, MBR o GPT — oppure un container .ffpfsc (un’immagine PFS PS5 contenente un’immagine exFAT compressa con PFSC; decompresso al volo attraverso la libreria, senza file intermedio). Un lettore exFAT completamente in .NET legge param.json / icona / dimensione direttamente dall’immagine. Su macOS l’immagine viene montata in sola lettura tramite hdiutil (senza copia); su Windows, oppure quando l’immagine contiene file spazzatura, viene estratta nella cartella temporanea (saltando .DS_Store, ._*, Thumbs.db…) e ripulita successivamente. Oppure un progetto GP5 (.gp5) da Publishing Tools / fpkg-gui — layout Normal (rootdir + maschere di esclusione) o layout Flat (elenco esplicito dei file); i percorsi relativi vengono risolti a partire dalla cartella del progetto, la scheda dei metadati mostra il layout e la root del progetto e vengono conteggiati solo i file elencati dal progetto.
Lingue Vietnamita / Inglese, cambio immediato nell’intestazione, la scelta viene memorizzata. La CLI accetta --lang vi|en o la variabile FPKG_LANG.
Creazione pacchetti Immagine FIH di debug, PLAINTEXT_NOAUTH o Native AES-XTS, APP / Homebrew / DLC, PlayGo automatico (1–64 chunk), override SDK (1–11), passcode, build deterministiche.
Compressione Encoder Kraken gestito integrato (funziona ovunque, multi-thread) oppure Oodle nativo tramite libScePubTools.dll (Windows, fallback automatico al Kraken integrato). PFS v2 (predefinito, compatibilità più ampia) oppure PFS v3 (pattern di shuffle della pre-compressione, analisi automatica dello shuffle per blocco), dimensione blocchi Kraken 128–256 KiB, ottimizzazione del layout fisico.
Velocità Preset Fast · Standard · Smallest · Maximum. Standard (predefinito) = Kraken livello 4, lo stesso encoder utilizzato dal motore 2.0.0 per il suo “Kraken 7”: stessa dimensione, stessa velocità. Smallest = Kraken 7 Optimal — una nuova modalità di compressione profonda, circa il 3% più piccola ma 5–6× più lenta. Maximum = Kraken 9 + PFS v3 + analisi dello shuffle. Livello personalizzato -4…9, numero di thread e modalità non compressa per test rapidi.
Prima della compilazione Legge metadati + icona, analizza la dimensione in parallelo, controlla lo spazio libero sui volumi temporanei/output e rileva e pulisce i file spazzatura del sistema operativo.
Durante la compilazione Barra di avanzamento generale ponderata con ETA e throughput in tempo reale, avanzamento ponderato sui byte all’interno dei file multi-GB, log virtualizzato di 20.000 righe, annullamento sicuro e prevenzione della sospensione (caffeinate / SetThreadExecutionState).
Dopo la compilazione Verifica la struttura FIH / PFS esterna, SHA-256 opzionale, pannello dei risultati, copia/salvataggio del log, apertura della cartella di output.
Estrazione dei pacchetti Modalità Extract PKG (gli alberi delle app estratti utilizzano il layout Sony — sce_sys/param.json, icona, playgo unito dal CNT — quindi possono essere ricostruiti direttamente): header FIH / CNT, mappa delle regioni, ogni campo di param.json, icona ed elenco dei file di un FPKG di debug; filtrare e selezionare file/cartelle, estrarre una selezione o tutto con avanzamento e annullamento, esportare sce_sys (param.json, icon0.png, playgo…) e voci SI, SHA-256 opzionale. I pacchetti Plaintext vengono letti direttamente (cache a blocchi da 4 MiB, senza immagine temporanea); i pacchetti Native vengono prima decriptati nella cartella temporanea; i pacchetti retail sono consultabili solo a livello informativo.
CLI fpkg-cli build / inspect / verify / clean-junk / info / pkg-info / pkg-list / pkg-extract per build batch, scripting e CI.

Download ed esecuzione

Scaricare l’archivio relativo alla propria piattaforma. Ogni build è autonoma — non è necessaria alcuna installazione di .NET.

  • macOS — decomprimere, quindi fare clic con il tasto destro su PSVIETHOA FPKG Builder.app → Apri la prima volta (l’app è firmata ad hoc).
  • Windows — decomprimere ed eseguire PSVIETHOA FPKG Builder.exe. SmartScreen potrebbe mostrare un avviso → Eseguire comunque.

Ogni archivio contiene anche lo strumento da riga di comando fpkg-cli.

Avvio rapido

  1. Preparare una cartella dell’app PS5 estratta (con una cartella sce_sys e eboot.bin), oppure indicare un’immagine disco .exfat, un container .ffpfsc o un progetto .gp5.
  2. Nel passaggio 1, fare clic su Browse… / immagine .exfat / file .ffpfsc / progetto .gp5, oppure trascinare la cartella / il file sulla finestra. Content ID, titolo, versione, dimensione e file spazzatura vengono rilevati automaticamente; la cartella di output viene impostata automaticamente (disattivare “Auto from source” per scegliere la propria).
  3. Scegliere un preset di velocità nel passaggio 3 (Standard è il predefinito ed equivale al vecchio “Kraken 7” del motore precedente; Smallest = livello 7 Optimal, lento) oppure aprire le opzioni avanzate.
  4. Fare clic su Build PKG (Ctrl/⌘+B o F5). Controllare avanzamento, ETA e log; la struttura viene verificata automaticamente al termine.

Riga di comando

bash

fpkg-cli info --lang en 
fpkg-cli inspect "/path/PPSA12345"          # cartella 
fpkg-cli inspect "/path/PPSA12345.exfat"    # immagine exFAT — letta direttamente, senza montaggio 
fpkg-cli inspect "/path/PPSA12345.ffpfsc"   # container .ffpfsc — exFAT interno decompresso al volo 
fpkg-cli check-update # versione più recente su GitHub? 
fpkg-cli build --source "/path/PPSA12345.exfat" --output "/path/out" # predefinito: Standard (livello 4), exfat automatico 
fpkg-cli build --source "/path/PPSA12345.exfat" --output "/path/out" --exfat extract 
fpkg-cli build --source "/path/PPSA12345" --output "/path/out" --preset fast --clean-junk 
fpkg-cli build --source "/path/PPSA12345" --output "/path/out" --preset maximum # Kraken 9 + PFS v3 + analisi dello shuffle 
fpkg-cli build --source "/path/PPSA12345" --output "/path/out" --pfs v3 --shuffle PredictForBc3 --block-size 128 
fpkg-cli verify "/path/out/UP9000-PPSA12345_00-XXXX-A0100-V0100.pkg" --sha256 
fpkg-cli pkg-info "/path/out/UP9000-PPSA12345_00-XXXX-A0100-V0100.pkg" # Generale + param.json 
fpkg-cli pkg-list "/path/out/UP9000-PPSA12345_00-XXXX-A0100-V0100.pkg" --include "*.sprx" 
fpkg-cli pkg-extract "/path/out/UP9000-PPSA12345_00-XXXX-A0100-V0100.pkg" --output "/path/unpacked" --include "sce_sys/**" --include "eboot.bin" --cnt

Codici di uscita: 0 successo · 1 argomenti non validi · 2 compilazione fallita · 3 annullata.

Immagini disco (.exfat / .ffpfsc)

  • Rilevate automaticamente dalla firma EXFAT all’inizio del volume oppure all’interno di una partizione MBR/GPT; vengono verificati anche offset comuni (settore 63, 2048…).
  • La cartella dell’applicazione viene individuata fino a 3 livelli di profondità all’interno dell’immagine (prima la root, ad esempio dump con sce_sys nella root).
  • macOS: hdiutil attach -readonly -imagekey diskimage-class=CRawDiskImage → compilazione direttamente dal punto di montaggio, smontaggio al termine. Il montaggio automatico avviene solo con un’immagine pulita; se sono presenti file spazzatura, l’immagine viene estratta per poterli saltare.
  • Windows / Linux: Estrazione tramite il lettore .NET puro (3 worker, buffer da 4 MB) in <temp>/exfat-<name>-<hash>/, con necessità di spazio libero aggiuntivo pari circa ai dati presenti nell’immagine; la cartella viene rimossa dopo la compilazione (anche in caso di annullamento).
  • Convalidato: La stessa immagine compilata in due modi — montaggio tramite hdiutil ed estrazione .NET pura — produce pacchetti identici byte per byte (stesso SHA-256), dimostrando che il lettore corrisponde esattamente al driver macOS.
  • Container .ffpfsc: Un’immagine PFS PS5 (superblock v2, blocchi da 64 KiB) contenente un singolo file compresso con PFSC — il dump exFAT del gioco. L’applicazione lo rileva dall’header (qualsiasi estensione) oppure dall’estensione .ffpfsc, applica il lettore exFAT alla decompressione PFSC della libreria (~900 MB/s, senza immagine temporanea) ed estrae sempre la cartella dell’app nella cartella temporanea prima della compilazione, poiché un container non può essere montato. Misurazione: container da 1,2 GB (4,29 GB exFAT, 2,9 GB di dati di gioco) → informazioni in 0,15 s, compilazione completa in 31 s.

Prestazioni

Misurate su un Mac Apple Silicon (15 core logici), Kraken integrato, build di LibProsperoPkg distribuita con la versione 2.1.0:

Test Configurazione Tempo Pacchetto
400 MB sintetici Fast (Kraken 2) / Standard (4, predefinito) 6,8 s / 7,5 s 254,3 MB / 254,2 MB
352 MB sintetici, 30.005 file Standard (4) 14 s (analisi 0,12 s) 204 MB
400 MB sintetici Smallest (Kraken 7) 16,4 s 250,3 MB
400 MB sintetici Maximum (Kraken 9 + PFS v3 + analisi dello shuffle) 47,6 s 249,8 MB
813 MB gioco reale (PPSA06438, .exfat montato) Smallest / Fast 23,4 s / 4,9 s 257,2 MB / 262,8 MB
21,3 GB gioco reale (PPSA27625, .exfat montato) Fast (Kraken 2) 1 min 59 s 8,86 GiB
21,3 GB gioco reale Standard (Kraken 4, predefinito) 2 min 13 s 8,86 GiB
21,3 GB gioco reale Smallest (Kraken 7 Optimal) 12 min 49 s 8,54 GiB
Container .ffpfsc da 1,2 GB (4,29 GB exFAT all’interno, 2,9 GB di dati di gioco) Standard (Kraken 4) 31 s (info 0,15 s) 1,14 GiB
Pacchetto da 36 GB (PPSA21567, 166.707 file) — Extract PKG elenco / estrazione 3,8 s / ~200 MB/s —

Per confronto, la build di LibProsperoPkg distribuita con la versione 2.0.0 creava lo stesso gioco da 21,3 GB in 3 min 40 s, ottenendo un pacchetto da 9,03 GiB.

Misurato fianco a fianco sullo stesso set da 400 MB, il motore 2.0.0 produceva pacchetti identici ai livelli 4 e 7 (254.212.194 byte) — il suo “livello 7” era l’encoder Normal — mentre il motore 2.1.0 al livello 4 riproduce questo risultato (254.211.794 byte) alla stessa velocità.

Quindi Standard (il predefinito) offre la dimensione del vecchio “Kraken 7” alla vecchia velocità e, sul gioco da 21 GB, è persino più veloce e compatto di prima (2 min 13 s, 8,86 GiB).

Smallest è una modalità Optimal realmente nuova: un ulteriore 3,5% (8,54 GiB) a fronte di una compilazione 5–6 volte più lunga su dati di gioco già compressi. I livelli 4–6 producono un output identico; dal livello 7 in poi viene utilizzato il parser Optimal.

Changelog

Release di manutenzione (macOS Apple Silicon / Intel, Windows x64; autonomo, fpkg-cli incluso).

Motore: LibProsperoPkg da fpkg-gui 0.6.5 — correzione DRM “standard”

Un gioco il cui sce_sys/param.json indica "applicationDrmType": "free" viene compilato in un pacchetto che mostra un lucchetto nella schermata principale della PS5 e rifiuta di avviarsi: il pacchettizzatore scrive le voci (fittizie) license.dat / license.info solo quando il tipo DRM è standard. Ora l’app forza standard durante la compilazione:

  • applicationDrmType viene riscritto nel param.json letto dal pacchettizzatore; il file sorgente viene ripristinato byte per byte al termine (coperto dai test).
  • Le immagini .exfat / .ffpfsc di sola lettura che necessitano della riscrittura vengono estratte invece di essere montate.
  • Nuova opzione avanzata Forza DRM “standard” (attiva per impostazione predefinita); il registro di compilazione mostra free → standard; la CLI --keep-drm mantiene il valore originale.

Nuovo: Recupero in caso di disco pieno

Quando il disco temporaneo o di output si riempie durante una compilazione, l’app si mette in pausa e mostra Riprova / Annulla, permettendo di liberare spazio e continuare invece di perdere la compilazione; fpkg-cli chiede conferma nella console.

L’output della cartella sciolta della libreria 0.6.5 è identico byte per byte a quello della 0.6.2, ad eccezione della modifica DRM. 123 test.

Download: PSVIETHOA FPKG Builder v2.1.5 (macOS AppleSilicon)

Download: PSVIETHOA FPKG Builder v2.1.5 (macOS Intel)

Download: PSVIETHOA FPKG Builder v2.1.5 (Windows x64)

Download: Source code PSVIETHOA FPKG Builder v2.1.5

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: PS5

Vedi altri prodotti PS5

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

Ultimo aggiornamento 2026-10-14 / Link di affiliazione / Immagini da Amazon Product Advertising API

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui
Captcha verification failed!
Punteggio utente captcha non riuscito. Ci contatti per favore!

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.