* Check for sparse layers in nsp_dumper and xml_generator PoCs before attempting to initialize content-type-specific contexts.
* system_title_dumper now builds.
* gamecardCloseStorageArea() no longer returns prematurely on application exit.
* Fix section size for sparse sections in ncaInitializeFsSectionContext().
* Fix ncaFsSectionValidateHashDataBoundaries().
* Implement bktrInitializeIndirectStorage() and bktrInitializeAesCtrExStorage().
* Made ncaGenerateEncryptedFsSectionBlock() entirely private. There's no point in keeping it public.
* Moved NCA FS section context initialization into its own function, ncaInitializeFsSectionContext().
* Hash data boundaries are now checked while initializing each NCA FS section context, using ncaFsSectionValidateHashDataBoundaries(). Both ncaValidateHierarchicalSha256Offsets() and ncaValidateHierarchicalIntegrityOffsets() have been removed.
* Improved hash region access detection in _ncaReadFsSection() by implementing ncaFsSectionCheckHashRegionAccess().
* ncaGetFsSectionHashTargetProperties() is now used in pfs.c, romfs.c and bktr.c to retrieve the properties from the target hash layer.
* Updated sanity checks in pfsInitializeContext(), romfsInitializeContext() and bktrInitializeContext().
* keysGetKeyAndValueFromFile() is now thread-safe -- may be useful for people reusing code from nxdumptool. The dynamic buffer allocated by __getline() must be freed by the caller. Furthermore, this fixes an out-of-bounds issue while writing data to the static array that was being used with fgets().
* Empty lines are now considered failures.
* keysGetKeyAndValueFromFile() now validates the value string and converts it to lowercase as well.
* Adjusted the example regex in the description for keysGetKeyAndValueFromFile() to accurately match what the function actually does.
* Added helper macros to keysReadKeysFromFile().
* gc_dumper: fixed Card ID Set dumping.
* nacp: updated structs and enums to match latest changes (big thanks to @0Liam !), added helper macros.
* cnmt: added helper macros.
* program_info: added helper macros.
* exception_handler: added helper macros.
* nxdt_utils: only create output directories if the app isn't a PoC build.
* todo: changed task priority order. Sparse/compressed section support is mandatory and must be implemented ASAP.
* nxdt_includes: renamed VersionType1 to Version and tweaked it to add the application_version struct, renamed VersionType2 to SdkAddOnVersion.
* gc_dumper: use utilsGeneratePath() to truncate generated filenames to safe filesystem limits. Thanks to n0tw0rk for reporting the issue and testing the changes!
* nxdt_host.py: fixed a string formatting issue that made it impossible to unpack data from the SendFileProperties command block under certain circumstances.
* gamecard: modified GameCardKeySource to add a value field, added GameCardFlags_HasCa10Certificate flag.
* utils: utilsGeneratePath() no longer adds a dot on its own if it's not part of the provided extension string.
Other changes include:
* Codestyle fixes.
* Remove references to GameCardKeyArea in the usb_gc_dumper PoC.
* Remove option to append key area to output XCI dumps in usb_gc_dumper PoC.
* Add support for dumping full GameCardSecurityInformation
* Add support for dumping LAFW
* Clear out ASIC session hash data
Co-authored-by: Pablo Curiel <pabloacurielz@gmail.com>
The exception handler is capable of logging CPU registers and a stack trace using the current log implementation.
Furthermore, if borealis has been initialized, it'll also display the PC register value using a CrashFrame. Otherwise, console output is used to display the same message.
Other changes include:
* utils: made utilsPrintConsoleError non-static.
* utils: implemented a workaround to restore console output after initializing nxlink.
Other changes include:
* GameCardTab: moved const strings to gamecard.c for easier maintenance.
* Codebase: reworked tab classes to make them use the wrappers provided by RootView instead of passing task object pointers.
Other changes include:
* Codebase: update all references to FocusableLabel and FocusableTable constructors to match the changes in FocusableItem.
* FocusableTable: objects can now be highlighted, but the highlight background won't be drawn.
* http: set low speed limit and time values.