Psviethoa-fpkg-builder

thanhsondev thanhsondev
Dépôt créer le : 13/09/2026
Forks: 1 Watcher: 0 9
Choisir une liste...
FR
PSVIETHOA FPKG Builder

Les résultats de l'enquête sont les suivants:docs/README.vi.md

Construire des paquets PS5 FPKG (FIH debug) à partir d'un dossier d'application.exfat/.ffpfscimage disque ou un projet GP5 — et extraire les paquets existants — sur macOS et Windows.

UI bilingue (vietnamien / anglais) · Préréglage de vitesse · PFS v2 / v3 ·.exfat/.ffpfscimages · Projets GP5 · Extraction de paquets · Vérification de la mise à jour · Contrôle de l'espace libre et des pourriels · ETA et débit · Vérification intégrée · CLI

Download

Platform Platform .NET UI Languages Version Tests

en-source.png en-extract.png en-advanced.png

Crédits :PSVIETHOA — Nguyen Thanh S. et Ngô Phi PhProjet principal: Drakmor(LibProsperoPkg)

Pourquoi ?

Outils FPKG existants pour PS5 (LibProsperoPkg.Gui) estWindows seulement WPF. PSVIETHOA FPKG Builder est une réécriture complète dansC# / .NET 10 + Avalonia UIqui court nativement surmacOS (Apple Silicon & Intel) et Windows, ajouteinterface bilingue, accepte.exfat/.ffpfscimages disque et projets GP5en tant que sourcesextraire les paquets existants, vérifie GitHub pourmises à jour, et se concentre surlisse et rapide lors de la construction de très grands dossiers de jeu(teneurs de GB). Le moteur du paquet estLibProsperoPkgparDrakmor(la construction de septembre 2026 expédiée avec fpkg‐gui 0.6.5), de sorte que les paquets qu'elle produit sont corrects par octet pour octet.

Le résultat estdebug FPKG(Image FIH, octet signé0x00) — elle ne s'installe que surPS5 avec mode de débogage activé.

Quoi de neuf en 2.1.x

  • 2.1.5 — moteur à partir de fpkg‐gui 0,6.5 + fixateur DRM:applicationDrmTypeest obligé de"standard"pendant la construction (paquets construits avec"free"DRM afficher un verrou sur la PS5 et refuser de démarrer); la sourceparam.jsonest restauré octet-for-octet par la suite, les images en lecture seule sont extraites au lieu d'être montées au besoin (boîte avancée, CLI--keep-drm).Récupération complète du disque: lorsque le disque de temp ou de sortie remplit les pauses de construction et vous permet de libérer de l'espace et de réessayer.

  • 2.1.4 —.ffpfscsources: un conteneur PS5 PFS contenant un dump exFAT compressé PFSC d'un jeu s'ouvre comme un.exfatimage (décompressée à la volée, aucun fichier intermédiaire; séparéfichier .ffpfscbouton, glisser & déposer,fpkg-cli inspect / build --source x.ffpfsc).Vérifier les mises à jour: badge d'en-tête vert lorsqu'une version plus récente existe (cochez à chaque début, bouton -,fpkg-cli check-update).

  • 2.1.1 – 2.1.3: Extraction Sony-layout (reconstructiblesce_sys), dossiers de sortie automatique, nom prédéfini "Standard", badge de version, historique clair, filet de sécurité de l'interface utilisateur.

  • Moteur LibProsperoPkg mis à jour— lit / compression / écrit avec moins de copies intermédiaires, dédoublement des blocs et cache de compression in-build, amélioré intégré à Kraken (surtout les niveaux 8-9), retour automatique à intégré à Kraken lorsque Oodle n'est pas disponible, correction de fichiers et d'annulation, et les paquets existants sont conservés si une reconstruction échoue.

  • Sélection PFS v2 / v3, configurableTaille du bloc Kraken(128-256 KiB),modèles de shuffle pré-compressionetanalyse automatique des shuffles(PFS v3 optimisation de la texture par la sélection de permutation — très lent, pleinement efficace seulement au niveau 9 de Kraken), facultatifoptimisation de la disposition physiqueLes paquets PFS v3 ont besoinFirmware PS5 7.00 ou plus récent; l'application en avertit.

  • Préréglage du nouveau codeur: la valeur par défaut est maintenantNorme= Kraken 4, l'encodeur même le moteur 2.0.0 utilisé pour son "Kraken 7" (même taille, même vitesse, plus gains de dedup/layout);Plus petite= Kraken 7Optimiséest un nouveau mode plus profond (~3 % plus petit, 5–6× plus lent)Maximumpréréglage (Kraken 9 + PFS v3 + analyse de shuffle).

  • Vivredébitdans le panneau de construction, des progrès plus fluides sur les fichiers multi-GB, l'ETA redéfini.

  • CLI:--pfs,--block-size,--shuffle,--shuffle-analysis,--shuffle-prediction-level,--skip-pfs-input-check,--no-layout-optimization,--source-mode,--project,--preset sony|standard; nouveauxpkg-info,pkg-list,pkg-extractcommandes.

  • Extraire les colis— nouveauxExtrait PKGmode (Construire) Extraire la barre sous l'en-tête) : ouvrir une.pkg(ou le déposer sur la fenêtre) pour voir les en-têtes FIH / CNT, chaqueparam.jsonchamp, l'icône et la liste complète des fichiers de l'image PPR-PFS interne; cocher les fichiers ou les dossiers et les extraire (ou le paquet entier), ou exporter lesce_sysrubriques. Les paquets PLAINTEXT NOAUTH sont lus directement.pkgdans 4 morceaux de MiB sans reconstruire l'image; les paquets Native (AES‐XTS) sont déchiffrés dans le dossier temporaire en premier. CLI:pkg-info,pkg-list,pkg-extract.

  • Sources des projets GP5(.gp5, comme le dossier de fpkg‐gui: sélectionnez un outil d'édition / projet fpkg‐gui à l'étape 1 ou déposez-le sur la fenêtre — Mises en page normales et plates, excluez les masques et les chemins relatifs sont honorés, le code passe vient du projet;fpkg-cli inspect/build --source x.gp5; uneMode de lecture des sourceschoisit entre un haut niveau automatique.gp5et l'emballage du dossier seulement.

VoirCHANGELOG.mdpour plus de détails.

Caractéristiques

Superficie Détails -- -- -- -- -- -- AutresSourcesUn dossier d'application (contenantsce_sys)ou une image disque exFAT (.exfat)— volume nu, MBR, ou GPT —ou une.ffpfscréservoir(une image PS5 PFS contenant une image exFAT compressée PFSC; décompressée à la volée à travers la bibliothèque, pas de fichier intermédiaire). Un pur-. Le lecteur NET exFAT litparam.json/ icône / taille directement depuis l'image. Sur macOS l'image estmonté en lecture seule viahdiutil(sans copie); sur Windows, ou lorsque l'image contient des fichiers indésirables, c'estextrait dans le dossier temporaire(décrochage).DS_Store,._*,Thumbs.db...) et nettoyé après.Ou un projet GP5 (.gp5)de la publication Outils / fpkg‐gui — Mise en page normale (rootdir+ exclure les masques) ou la mise en page plate (liste de fichiers explicite); les chemins relatifs résolvent à partir du dossier du projet, la carte de métadonnées montre la mise en page et la racine du projet, et seuls les fichiers les listes de projet sont comptés. Autres AutresLanguesVietnamien / Anglais, basculez instantanément dans l'en-tête, le choix est rappelé. CLI prend--lang vi\|enou lesFPKG_LANGvariable. autresEmballageFIH debug image, PLAINTEXT NOAUTH ou Native AES‐XTS, APP / Homebrew / DLC, automatique PlayGo (1–64 morceaux), remplacement SDK (1–11), passcode, constructions déterministes. Autres AutresCompressionEncastréencodeur Kraken géré(cours partout, multifilés) ouoodle indigèneparlibScePubTools.dll(Windows, retour automatique à Kraken intégré).PFS v2(par défaut, compatibilité la plus large) ouPFS v3(modèles de shuffle pré-compression, analyse automatique de shuffle par bloc), taille du bloc Kraken 128–256 KiB, optimisation de la disposition physique. Autres AutresVitessePréréglageRapide · Standard · Petit · Maximum.Norme(par défaut) = niveau de Kraken 4, le très encodeur le moteur 2.0.0 utilisé pour son "Kraken 7" : même taille, même vitesse.Plus petite= Kraken 7Optimisé— un nouveau mode de compression profonde, environ 3 % plus petit mais 5–6× plus lent.Maximum= Kraken 9 + PFS v3 + analyse de shuffle. Niveau personnalisé-4…9, le nombre de fils, et un mode non compressé pour les tests rapides. autres autresAvant la constructionLire les métadonnées + icône, scanner la taille en parallèle,contrôle l'espace libresur les volumes temp/output, etdétecte & nettoie les fichiers pourriels OS.. AutresTout en construisantBarre de progression globale pondérée avecETAet vivredébit, progression pondérée par octet à l'intérieur de fichiers multi-GB, journal de 20k-line virtualisé, annulation sécurisée, etprévention du sommeil(caffeinate/SetThreadExecutionState). AutresAprès constructionVérifie la structure FIH/externe-PFS, panneau de résultat optionnel SHA-256, copier/enregistrer le journal, ouvrir le dossier de sortie. Autres AutresExtraire les colisAutresExtrait PKGmode (les arbres d'application extraits sont dans la disposition Sony —sce_sys/param.json, icône, playgo fusionné à partir de la CNT — afin qu'ils puissent être reconstruits directement: en-têtes FIH / CNT, carte régionale, chaqueparam.jsonchamp, icône et liste de fichiers d'un FPKG de débogage; filtrer et cocher les fichiers/dossiers, extraire une sélection ou tout avec progrès et annuler, exportersce_sys(param.json, icon0.png, playgo...) et entrées SI, option SHA‐256. Les paquets texte simple sont lus en place (4 caches de morceaux de MiB, pas d'image temporaire); les paquets autochtones sont déchiffrés dans le dossier temporaire d'abord; les paquets de détail ne sont que des informations. Autres AutresCLIAutresfpkg-cli build / inspect / verify / clean-junk / info / pkg-info / pkg-list / pkg-extractpour les compilations par lots, scripting et CI

Télécharger & exécuter

Prenez l'archive pour votre plateformeReleasespage. Chaque construction estautonome— pas d'installation .NET nécessaire.

  • macOS— dézipper, puis faire un clic droitPSVIETHOA FPKG Builder.app→Ouvrirla première fois (l'application est signée ad-hoc).
  • Windows— décompresser et exécuterPSVIETHOA FPKG Builder.exe. SmartScreen peut déclencher →Courez quand même.

Chaque archive contient également lesfpkg-clioutil en ligne de commande.

Début rapide

  1. Préparer un dossier d'application PS5 extrait (avecsce_sysdossier eteboot.bin),ouà un moment donné.exfatimage disque, une.ffpfsccontenant ou.gp5projets.
  2. Dansétape 1, cliquezParcourir../.exfat image/fichier .ffpfsc/projet .gp5, ou déposez le dossier / fichier dans la fenêtre. L'ID du contenu, le titre, la version, la taille et les fichiers indésirables sont détectés automatiquement; le dossier de sortie est défini pour vous (cochez "Auto from source" pour choisir le vôtre).
  3. Choisir une vitesse prédéfinieétape 3(Standard est la valeur par défaut et égale le "Kraken 7" de l'ancien moteur; le plus petit = niveau 7 Optimal, lent) ou ouvre les options avancées.
  4. Cliquez surConstruire PKG(Ctrl/⌘+BouF5). Surveillez la progression, l'ETA et le journal; la structure est vérifiée automatiquement quand elle se termine.

Ligne de commande

fpkg-cli info --lang en
fpkg-cli inspect "/path/PPSA12345"                 # folder
fpkg-cli inspect "/path/PPSA12345.exfat"           # exFAT image — read directly, no mount
fpkg-cli inspect "/path/PPSA12345.ffpfsc"          # .ffpfsc container — inner exFAT decompressed on the fly
fpkg-cli check-update                              # newer release on GitHub?
fpkg-cli build --source "/path/PPSA12345.exfat" --output "/path/out"           # default: Standard (level 4), exfat auto
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 + shuffle analysis
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"                # General + 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

Codes de sortie:0succès ·1arguments invalides ·2construction échouée ·3annulé.

Images de disque (.exfat / .ffpfsc)

  • Détecté automatiquement par leEXFAT signature au démarrage du volume, ou à l'intérieur d'une partition MBR/GPT; les décalages communs (secteur 63, 2048...) sont sondés aussi.
  • Le dossier de l'application est situé jusqu'à 3 niveaux au fond de l'image (root first, p.ex. dumps avecsce_sysà la racine).
  • - Oui hdiutil attach -readonly -imagekey diskimage-class=CRawDiskImage→ construire directement à partir du point de montage, démonter quand c'est fait.Automatiquene monte qu'une image propre; si des fichiers pourriels sont présents il extrait ainsi ils peuvent être ignorés.
  • Windows / Linux :extrait avec le pur‐. Lecteur NET (3 travailleurs, 4 tampons MB)<temp>/exfat-<name>-<hash>/, nécessitant un espace libre supplémentaire, les données de l'image; supprimé après la construction (même en cas d'annulation).
  • Valide :la même image a construit deux façons — hdiutil monture vs. pure‐. Extraction NET — produitbyte‐identiquepaquets (même SHA-256), c'est-à-dire que le lecteur correspond exactement au pilote macOS.
  • .ffpfsccontenants:une image PS5 PFS (superbloc v2, 64 blocs KiB) qui contient un fichier compressé PFSC — le dump exFAT du jeu. L'application le détecte par son en-tête (toute extension) ou la.ffpfscextension, couche le lecteur exFAT sur la décompression PFSC de la bibliothèque (~900 MB/s, pas d'image temporaire) et toujoursextraitsle dossier de l'application dans le dossier temporaire avant la construction, car un conteneur ne peut pas être monté. Mesuré: 1.2 Go conteneur (4.29 Go exFAT, 2.9 Go de données de jeu) → info en 0,15 s, construction complète en 31 s.

Résultats

Mesuré sur un Apple‐Silicon Mac (15 cœurs logiques), intégré à Kraken, LibProsperoPkg build expédié avec 2.1.0:

Test de l'emballage C'est pas vrai. 400 Mo de matière synthétiqueStandard (4, par défaut)6,8 s / 7,5 s 352 MB synthétique,30 005 dossiersNorme (4): 14 s (scan 0,12 s) 400 Mo de matière synthétique (Kraken 9 + PFS v3 + analyse de shuffle) 813 MB jeu réel (PPSA06438, monté .exfat)-- Plus petit / rapide 23,4 s / 4,9 s Autres21.3 Go jeu réel(PPSA27625, monté .exfat) Autres21.3 Go jeu réelAutresStandard (Kraken 4, par défaut)Autres2 min 13 sAutres8.86 GiBAutres Autres21.3 Go jeu réelPlus petit (Kraken 7 Optimal) 1,2 Go.ffpfscconteneur (4,29 GB exFAT à l'intérieur, 2,9 Go de données de jeu) Boîte de 36 Go (PPSA21567, 166 707 dossiers) —Extrait PKGListe / extrait

Pour comparaison, le LibProsperoPkg build expédié avec 2.0.0 construit le même jeu de 21,3 Go en 3 min 40 s à un paquet de 9,03 GiB. Mesuré côte à côte sur le même ensemble de 400 Mo, le moteur 2.0.0 produitidentiqueles colis aux niveaux 4 et 7 (254 212 194 octets) — son "niveau 7" était l'encodeur normal — et le moteur 2.1.0 au niveau 4 reproduit ce résultat (254 211 794 octets) à la même vitesse. AlorsNorme(par défaut) vous donne l'ancienne taille "Kraken 7" à l'ancienne vitesse, et sur le jeu de 21 Go il est encore plus rapide et plus petit qu'avant (2 min 13 s, 8,86 GiB).Plus petiteest vraiment nouveauOptimisémode: un autre 3,5 % (8,54 GiB) pour une construction plus longue de 5–6× sur des données de jeu déjà compressées. Les niveaux 4 à 6 produisent une sortie identique; le niveau 7 et le passage vers l'analyseur optimal.

Construire à partir de la source

Nécessite.NET SDK 10(brew install dotnetsur macOS).

dotnet build PsViethoa.FpkgBuilder.slnx -c Release   # build everything
scripts/run-dev.sh                                   # run the GUI (macOS/Linux)
dotnet test                                          # run the test suite

scripts/publish-macos.sh osx-arm64 osx-x64           # dist/: .app + fpkg-cli + zip
scripts/publish-windows.sh                           # dist/win-x64: .exe + fpkg-cli + zip

Plan du projet

PsViethoa.FpkgBuilder.slnx
Directory.Build.props                 # net10.0, version (2.1.0), GC/PGO
CHANGELOG.md
libs/                                 # LibProsperoPkg.dll, libScePubTools.dll (Windows)
src/
  PsViethoa.FpkgBuilder.Core/         # engine, validation, exFAT reader, progress, localization
  PsViethoa.FpkgBuilder.App/          # Avalonia UI (MVVM), tokens/styles, views, assets
  PsViethoa.FpkgBuilder.Cli/          # fpkg-cli
tests/PsViethoa.FpkgBuilder.Tests/    # xUnit (123 tests)
scripts/                              # publish + dev scripts

Captures d'écran

Thème léger PFS v3 options C'est le cas. AutresAutresAutresAutres

Tout en construisant le mode d'extraction (Vietnamese) C'est le cas. AutresAutresAutresAutres

Mode d'extraction, thème de lumière -- -- -- -- -- -- AutresAutresAutres

Crédits & licence

  • PSVIETHOA — Nguy-en-Thanh-san et Ngô-Phi-Ph— application multiplateforme, UI bilingue, support d'image exFAT,fpkg-cli.
  • Projet principal:Drakmor— auteur deLibProsperoPkg, le noyau du FPKG (PFS v2/v3, NAPS, Kraken, analyse du mélange, PlayGo, vérification du paquet).
  • Polices: JetBrains Mono & Inter (SIL OFL). Icônes : Icônes de conception des matériaux (Apache 2.0).
  • Merci à la communauté PS5 homebrew et à tous ceux qui ont contribué à LibProsperoPkg.

Cet outil construitdebugpackages pour homebrew et développement sur consoles debug. Il expédie le tiersLibProsperoPkg.dll/libScePubTools.dllnon modifié. Utiliser de façon responsable.

Fait avec soin parPVIETHOA· φ

Contributeurs GitHub

thanhsondev
thanhsondev
9 contributions