Il developer SvenGDK ha aggiornato LibProsperoPKG, la libreria open source sviluppata in C# 14 per .NET 10 dedicata alla creazione e gestione dei pacchetti PlayStation 5, introducendo numerose novità che ne ampliano le funzionalità e migliorano l’affidabilità.

Questa nuova versione introduce numerose funzionalità che ampliano sensibilmente le possibilità offerte, migliorando al tempo stesso l’architettura del progetto, la documentazione e gli strumenti di ispezione dei file.
LibProsperoPKG v2.0 is now available :https://t.co/i1vPuqkMFx
Contains a lot of new updates & improvements. This milestone gets very close to the final goal.— SvenGDK (@SvenGDK) July 10, 2026
Tra le novità più significative spicca l’introduzione di nuovi workflow dedicati alla gestione dei pacchetti PlayStation 5.
La libreria integra ora ProsperoBackupConverter, uno strumento progettato per convertire i backup provenienti da dischi ottici o pacchetti digitali, facilitando la gestione dei dati durante le fasi di sviluppo e analisi.
Debutta inoltre ProsperoHomebrewPackager, un sistema pensato per creare pacchetti dedicati alle applicazioni homebrew.
Per semplificare lo studio del funzionamento della libreria è stato incluso anche un progetto dimostrativo all’interno della cartella HomebrewTest, che permette agli sviluppatori di prendere rapidamente confidenza con il processo di creazione dei pacchetti.
L’aggiornamento introduce anche ProsperoPkgMerger, un nuovo strumento capace di unire automaticamente i pacchetti suddivisi in più parti, e ProsperoLaunchReadiness, un sistema di verifica che controlla se un pacchetto dispone di tutti i requisiti necessari per poter essere avviato correttamente.
Una parte importante del lavoro si è concentrata anche sulla gestione delle immagini interne ai pacchetti. LibProsperoPKG ora supporta il nuovo percorso “nwonly” data-first per la costruzione delle immagini interne di PlayStation 5, includendo strumenti dedicati alla creazione, all’assemblaggio, alla lettura e alla gestione dei metadati e delle tabelle dei percorsi.
Sul fronte dei metadati arrivano nuovi modelli come ProsperoManifest e ProsperoParam, accompagnati da nuove enumerazioni che rendono più semplice la gestione delle informazioni contenute nei pacchetti. È stato inoltre aggiunto il supporto al parsing dell’header ProsperoElfHeader, insieme a un nuovo strumento dedicato all’analisi delle licenze di debug.
L’aggiornamento migliora anche la gestione del formato NAPS, introducendo un nuovo generatore per il layout “nwonly” e strumenti specifici per la costruzione delle relative strutture dati.
Anche la gestione delle immagini riceve un’importante novità grazie all’introduzione di ProsperoPngDecoder, un decoder che consente la conversione delle immagini PNG nel formato DDS, utilizzato frequentemente durante la creazione dei contenuti destinati ai pacchetti PlayStation 5.
Dal punto di vista tecnico, SvenGDK ha ampliato in maniera significativa anche l’interfaccia C ABI nativa della libreria, aggiungendo numerose nuove funzioni esportate che migliorano l’integrazione con software sviluppati in altri linguaggi.
Parallelamente sono stati estesi gli strumenti di analisi dedicati ai file PKG, ELF e PFS, coinvolgendo diversi componenti della libreria come l’estrattore, il generatore dei pacchetti, il builder FIH e la gestione degli archivi SI.
Tra le ottimizzazioni interne trovano spazio anche una revisione del sistema di compressione Oodle/Kraken, miglioramenti al writer PFS e numerosi affinamenti dell’architettura complessiva, con l’obiettivo di incrementare affidabilità e prestazioni.
Non meno importante il lavoro svolto sulla documentazione. Sono stati aggiornati il README, la guida introduttiva, la panoramica delle API, la documentazione dedicata al formato PKG di PlayStation 5 e il documento che descrive lo stato di implementazione del progetto.
Anche le procedure di compilazione nativa per Linux e macOS sono state riviste per semplificare lo sviluppo multipiattaforma.
Nonostante i numerosi progressi, il progetto non ha ancora raggiunto un traguardo fondamentale. SvenGDK precisa infatti che i pacchetti generati dalla libreria non possono ancora essere installati correttamente su PlayStation 5.
Durante la procedura di installazione vengono infatti restituiti diversi messaggi di errore, tra cui l’assenza del file PlayGoScenario, la mancanza della firma digitale richiesta e altri problemi legati al sistema PlayGo, impedendo così il completamento dell’installazione.
Caratteristiche principali
- Pipeline integrata in tempo reale. Cartella → layout PFS interno → crittografia AES-XTS → PFS esterno → contenitore di metadati
\x7FCNT→ immagine di debug\x7FFIHfinale, con un processo completo dall’inizio alla fine. - Completamente autonomo. Il modello del progetto GP5, il generatore di immagini PFS, la crittografia AES-XTS, la firma dei metadati con RSA-3072 e la creazione dell’immagine di debug finale vengono gestiti interamente dalla libreria.
- Lettura e scrittura dei pacchetti. Consente di analizzare e ispezionare pacchetti PS5 esistenti (
\x7FCNT/\x7FFIH) e di crearne di nuovi. - Estrazione dei contenuti. Permette di estrarre il file system dell’applicazione da un’immagine di debug o con chiave tramite ProsperoPackageExtractor, oppure da qualsiasi immagine per cui sia disponibile la chiave immagine a 32 byte.
- Supporto ai pacchetti di backup da disco. Apre backup suddivisi (
app_0.pkg+app_sc.pkg) utilizzando il fileapp.json, li ricompone dinamicamente e verifica sia il digest del pacchetto sia i CRC dei blocchi da 64 KiB. - Gestione delle licenze (RIF). Consente di leggere, modificare e creare i record di licenza specifici per ciascun titolo, inclusi i file contenenti più licenze, tramite LibProsperoPkg.License.
- Controlli di validazione. Verifica che un pacchetto soddisfi tutti i requisiti strutturali richiesti dal percorso di montaggio della console attraverso ProsperoPkgValidator.
- Supporto ai pacchetti con firma falsa (fPKG). È possibile convertire facoltativamente i moduli ELF grezzi (
eboot.bin,*.elf,*.prx,*.sprx) nel formato fake-self prima del packaging, generando un fPKG installabile. L’operazione non è distruttiva: i file originali vengono ripristinati al termine della procedura. - Conversione dei backup. ProsperoBackupConverter riconfeziona un backup applicativo decrittografato in un fPKG di debug, sostituendo ogni eseguibile con la relativa versione ELF decrittografata e applicando la firma falsa, permettendo l’avvio tramite Content ID e passcode senza richiedere un file RIF.
- Verifica della compatibilità all’avvio. ProsperoLaunchReadiness analizza una cartella applicativa assemblata e controlla che soddisfi tutte le condizioni necessarie all’esecuzione in modalità debug: tutti i moduli eseguibili devono essere in formato plaintext supportato dal loader,
eboot.bindeve essere presente e i metadati devono utilizzareparam.jsonanziché il fileparam.sfodi PS4. - Packaging delle applicazioni homebrew. ProsperoHomebrewPackager trasforma una cartella contenente un homebrew compilato in un fPKG di debug installabile. Il processo crea una struttura pulita, genera un’immagine di debug priva di licenza con chiave di montaggio derivata da Content ID e passcode e verifica automaticamente la compatibilità all’avvio. Un esempio pratico è disponibile nella cartella
src/HomebrewTest. - Selezione del tipo di applicazione. ProsperoApplicationType permette di definire il valore
applicationDrmTypeall’interno del fileparam.json, supportando applicazioni gratuite, standard, freemium, demo e aggiornabili. - Generazione delle texture. Il ricodificatore delle immagini DDS (BC7) utilizzate da
sce_sysper icone e immagini decodifica il file PNG originale e lo comprime direttamente nel formato DX10 BC7 durante il processo di creazione del pacchetto.
Requisiti
| Componente | Requisito |
|---|---|
| Toolchain | .NET 10 SDK o versione successiva |
| Linguaggio | C# 14 |
Compilazione
cd LibProsperoPKG/src/LibProsperoPkg
dotnet build -c Release
Questo comando genera il file LibProsperoPkg.dll
Guida rapida
Aggiungere un riferimento al progetto (oppure al file LibProsperoPkg.dll compilato o al pacchetto NuGet) e creare un pacchetto partendo da una cartella dell’applicazione già preparata:
using LibProsperoPkg;
var options = new ProsperoBuildOptions
{
Mode = ProsperoPackageMode.Application,
OutputFormat = ProsperoOutputFormat.DebugImage, // Installabile su console in modalità debug
SourceFolder = @"/path/to/prepared/app", // Deve contenere la cartella sce_sys/
OutputFolder = @"/path/to/output",
ContentId = "UP9000-PPSA00000_00-PROSPERO00000000",
TitleId = "PPSA00000",
Title = "My PS5 Application",
Version = "01.00",
};
ProsperoBuildResult result = ProsperoPackageBuilder.Build(options, Console.WriteLine);
Console.WriteLine($"Pacchetto creato in: {result.OutputPath}");
foreach (var warning in result.Warnings)
Console.WriteLine($"Avviso: {warning}");
Fake-signing modules (fPKG)
Impostare FakeSignSelfModules permette di convertire i moduli ELF grezzi presenti nella cartella sorgente nel formato fake-self prima della fase di creazione del pacchetto. Utilizzare ApplicationType per controllare il valore applicationDrmType generato all’interno del file param.json.
var options = new ProsperoBuildOptions
{
Mode = ProsperoPackageMode.Application,
OutputFormat = ProsperoOutputFormat.DebugImage,
SourceFolder = @"/path/to/prepared/app",
OutputFolder = @"/path/to/output",
ContentId = "UP9000-PPSA00000_00-PROSPERO00000000",
TitleId = "PPSA00000",
Title = "My PS5 Application",
Version = "01.00",
ApplicationType = ProsperoApplicationType.FreemiumApp,
FakeSignSelfModules = true,
};
I file che sono già nel formato SELF vengono lasciati invariati e i byte originali dei moduli vengono ripristinati automaticamente al termine della creazione del pacchetto.
Per creare in un solo passaggio un pacchetto senza DRM e senza licenza, è sufficiente impostare LicenseFree. Questa opzione applica la firma falsa ai moduli e genera la chiave di montaggio di debug utilizzando il Content ID e il passcode, evitando così la scrittura di un file RIF.
La proprietà ProsperoBuildResult.DebugLicense mostra l’autorizzazione generata, mentre ProsperoBuildResult.LicenseFree riporta lo stato dell’opzione selezionata. Il risultato finale è un’immagine di debug finalizzata, destinata a una console abilitata alla modalità debug.
Per riconfezionare un backup applicativo decrittografato in un fPKG di debug, è necessario utilizzare ProsperoBackupConverter.Convert.
Lo strumento sostituisce ogni eseguibile firmato con il relativo file ELF grezzo decrittografato, applica la firma falsa ai moduli e crea un’immagine di debug che può essere montata utilizzando il Content ID e il passcode.
Il backup originale rimane completamente invariato; il convertitore opera infatti su una copia temporanea di lavoro.
var result = ProsperoBackupConverter.Convert(new ProsperoBackupConversionOptions
{
BackupFolder = @"/path/to/backup/PPSA00000-app0",
OutputFolder = @"/path/to/output",
});
Packaging di un modulo homebrew
Per creare un fPKG di debug installabile a partire da una cartella homebrew compilata (contenente un file eboot.bin in formato ELF grezzo e un’eventuale struttura sce_sys/), è possibile utilizzare ProsperoHomebrewPackager.Package.
Durante il processo il modulo viene convertito tramite firma falsa (fake-sign) e la chiave di montaggio viene generata automaticamente utilizzando il Content ID e il passcode. Successivamente viene eseguito un controllo per verificare la compatibilità con l’avvio (launch-readiness).
Un esempio completo di utilizzo è disponibile nella cartella src/HomebrewTest.
var result = ProsperoHomebrewPackager.Package(new ProsperoHomebrewPackageOptions
{
HomebrewFolder = @"/path/to/HomebrewTest",
OutputFolder = @"/path/to/output",
ContentId = "UP9000-PPSA99099_00-PROSPERO00000000",
Title = "LibProsperoPKG",
});
Console.WriteLine($"Launch ready: {result.LaunchReadiness.IsLaunchReady}");
Analisi di un pacchetto esistente
using LibProsperoPkg.PKG;
ProsperoPkg pkg = ProsperoPkgReader.Read(@"/path/to/some.pkg");
Console.WriteLine($"Tipo: {pkg.Type}");
Console.WriteLine($"Content ID: {pkg.Header.ContentId}");
Console.WriteLine($"Elementi: {pkg.Entries.Count}");
API pubbliche in sintesi
| Namespace | Tipi principali |
|---|---|
LibProsperoPkg |
ProsperoPkgBuilder, ProsperoPkgReader, ProsperoCntWriter, ProsperoFihBuilder, ProsperoPkgSigner, ProsperoDdsEncoder, ProsperoPackageExtractor, ProsperoExtractionKey, ProsperoPkgValidator, ProsperoPkg, ProsperoPkgHeader |
LibProsperoPkg.PFS |
ProsperoPfsLayout, ProsperoPfsImage, ProsperoPfsc, ProsperoPfsExtractor |
LibProsperoPkg.License |
ProsperoRif, ProsperoRifSet, ProsperoEntitlementKey |
LibProsperoPkg.NpDrm |
ProsperoNpDrmContentInfo |
LibProsperoPkg.DiscBackup |
ProsperoDiscBackup, ProsperoDiscBackupManifest, ProsperoPlaygoChunkCrc |
LibProsperoPkg.GP5 |
Gp5Creator, Gp5Project e il relativo modello degli elementi |
LibProsperoPkg.Keys |
ProsperoKeys |
LibProsperoPkg.PlayGo |
ProsperoPlayGo |
LibProsperoPkg.Content |
ProsperoUcp, ProsperoFself, ProsperoSelfAuthInfo, ProsperoElfHeader, ProsperoLaunchReadiness |
Consultare la sezione docs/ per lo stato completo delle funzionalità e la descrizione tecnica del pacchetto PS5.
Documentazione
- docs/README.md – Indice della documentazione.
- docs/getting-started.md – Installazione, compilazione e creazione del primo pacchetto.
- docs/api-overview.md – Panoramica delle API pubbliche suddivise per namespace.
- docs/implementation-status.md – Stato delle funzionalità implementate e di quelle ancora mancanti.
- docs/ps5-pkg-format.md – Approfondimento tecnico sul formato PKG della PS5 e sul processo di creazione.
Limitazioni
LibProsperoPkg genera un pacchetto completo e coerente, la cui struttura e il contenitore dei metadati possono essere letti e ricostruiti correttamente tramite il lettore integrato.
Tuttavia, due componenti dell’immagine finale dipendono da informazioni generate direttamente dalla console e vengono quindi ricreate con un approccio best effort anziché essere riprodotte in modo identico: la tabella dei digest dell’immagine finale e l’archivio dei metadati di installazione presente nella parte conclusiva del pacchetto.
La libreria è pensata principalmente per console in modalità debug, dove i controlli sull’immagine finale risultano meno restrittivi. L’accettazione del pacchetto sulla console rimane comunque vincolata all’hardware.
Per maggiori dettagli è possibile consultare docs/implementation-status.md.
Changelog
Nuove funzionalità
Nuovi flussi di lavoro per i pacchetti
- Conversione dei backup – Aggiunto
ProsperoBackupConverterper convertire backup di dischi e pacchetti. - Packaging homebrew – Introdotto
ProsperoHomebrewPackagerper creare pacchetti contenenti contenuti homebrew, con l’aggiunta di un pacchetto di esempio disponibile nella cartellasrc/HomebrewTest/. - Unione dei pacchetti suddivisi – Aggiunto
ProsperoPkgMergerper combinare pacchetti composti da più parti. - Controlli di compatibilità all’avvio – Integrato
ProsperoLaunchReadinessper verificare se un pacchetto è pronto per essere eseguito.
Immagine interna e metadati
- Aggiunto il nuovo percorso interno “nwonly” basato sui dati, con un sistema completo per la creazione dell’immagine interna PS5, comprendente builder, assembler, lettore e strumenti di gestione dei metadati e delle tabelle dei percorsi flat.
- Introdotti nuovi modelli per i metadati:
ProsperoManifest,ProsperoParame relativi enumeratori. - Aggiunto il supporto al parsing del nuovo
ProsperoElfHeadere un helper per la gestione delle licenze di debug. - Implementato il builder per il layout NAPS e il generatore nwonly NAPS.
Gestione delle immagini
- Aggiunto
ProsperoPngDecoder, che permette la decodifica da formato PNG a DDS.
Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale. Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.🔥 Prodotti in promozione e articoli più venduti: PS5
Vedi altri prodotti PS5
Ultimo aggiornamento 2026-08-15 / Link di affiliazione / Immagini da Amazon Product Advertising API


![[Scena Switch] Sphaira si aggiorna su Nintendo Switch: Supporto MSP, nuove opzioni e fix per l’avvio degli NRO](https://www.biteyourconsole.net/wp-content/uploads/homebrew1900-238x178.webp)


![[Scena Switch] Sphaira si aggiorna su Nintendo Switch: Supporto MSP, nuove opzioni e fix per l’avvio degli NRO](https://www.biteyourconsole.net/wp-content/uploads/homebrew1900-100x75.webp)