1
0
Fork 0
mirror of https://github.com/DarkMatterCore/nxdumptool.git synced 2024-12-23 17:06:02 +00:00
Commit graph

436 commits

Author SHA1 Message Date
Pablo Curiel
de076f4908 More USB changes.
* usb: copy command ID and block size before moving command data within the USB transfer buffer.

* nsp_dumper_usb: now spans a background thread for the dump process, progress is now displayed, process can now be cancelled by holding B, updated to properly make use of the new usbCancelFileTransfer() behavior.

* usb_gc_dumper: updated to properly make use of the new usbCancelFileTransfer() behavior.

* usb_romfs_dumper: updated to properly make use of the new usbCancelFileTransfer() behavior.

* Updated ns-usbloader patch. Must be used on commit `8771d551a4e6fa2d645e519d504a377e34cbd730`.
2021-02-16 08:22:14 -04:00
Pablo Curiel
b6759f764b Gracefully cancel ongoing USB file transfers.
Keeps alive the current USB session by informing the host device that the user cancelled an ongoing USB transfer, instead of stalling the endpoints.

Also updated the USB ABI specs once again.
2021-02-15 17:07:47 -04:00
Pablo Curiel
c3555431d4 Prevent ALIGN_DOWN() from overflowing. 2021-02-13 19:53:30 -04:00
Pablo Curiel
1d0cc9c45b USB changes (breaks ns-usbloader compatibility).
* Updated usbSendCommand() to make it send the command header first, and then the command block. Makes it easier for host applications to read and parse command data.

* Let usbSendCommand() take care of handling ZLT packets if required by any command block (only SendNspHeader at this moment), as well as logging status data via usbLogStatusDetail().

* Updated USB ABI specs doc.
2021-02-13 17:49:05 -04:00
Pablo Curiel
9bac8f3bdc Some more changes.
* nacp: updated u32 and u64 field functions to let the user choose if the provided value should be printed using decimal or hexadecimal base, fixed codestyle.

* utils: properly implement ALIGN_DOWN() macro.
2021-02-13 02:09:18 -04:00
Pablo Curiel
69d9c2d732 Update ffconf.h 2021-02-13 00:26:23 -04:00
Pablo Curiel
054c9be41b Define constants using C preprocessor. 2021-02-12 18:41:14 -04:00
Pablo Curiel
2795ed14eb Fix codestyle. 2021-02-12 18:01:33 -04:00
Pablo Curiel
e77c72b0db Some changes.
* gamecard: added more comments, modified gamecardGetBundledFirmwareUpdateVersion() to fill a VersionType1 pointer instead of a u32, fallback to manually reading the gamecard certificate if fsDeviceOperatorGetGameCardDeviceCertificate() fails, updated GameCardFwVersion enum.

* title: tweaked conditions for some functions.

* usb: explicitly defined values for previously omitted struct members while initializing USB comms, imported libusb structs to make it easier to work with the USB BOS, added a few more comments and changed around some code.

* utils: tweaked the illegal filesystem character array to remove some chars that are actually allowed.
2021-02-12 16:35:23 -04:00
Pablo Curiel
ed2061ae3e Update nca.h 2021-01-31 05:21:50 -04:00
Pablo Curiel
88793eceea Populate app_metadata pointer in TitleInfo elements that aren't system titles or user applications. 2021-01-31 05:16:05 -04:00
Pablo Curiel
232fe05587 Use LIBUSBHSFS_FS_TYPE_STR() macro from libusbhsfs instead of our own one. 2020-12-24 07:16:16 -04:00
Pablo Curiel
b4bf505d4f UMS changes.
* Temporarily changed tracked libusbhsfs branch from main to dev.

* Minor improvements in ums.c/h.

* Refactored nsp_dumper_sd into nsp_dumper_stor - now capable of dumping NSPs to a mounted partition from a UMS device.

* Fixed utilsWaitForButtonPress() when no button mask is provided.

* Refactored utilsGetFreeSpaceFromFileSystemByPath() into utilsGetFileSystemStatsByPath().
2020-12-24 04:49:38 -04:00
Pablo Curiel
6f43764e1b Improved UMS interface. 2020-12-23 14:43:12 -04:00
Pablo Curiel
736f2e155b Add DisableDeviceAddressSpaceMerge NPDM meta flag.
Also updated the Makefile to link the application against lwext4.
2020-12-23 14:02:02 -04:00
Pablo Curiel
fbd250a417 Update copyright years. 2020-12-23 13:48:57 -04:00
Pablo Curiel
ae12e48678 Added UMS interface based around libusbhsfs.
Also normalized Initialized -> Init in names from global variables.
2020-12-07 00:26:59 -04:00
Pablo Curiel
5a070f624c Use UsbState enum values from latest libnx. 2020-12-06 18:45:30 -04:00
Pablo Curiel
c29f994b35 Support for HOS 11.0.0.
* Updated hardcoded system title list to match HOS 11.0.0.
* Updated NcaKeyGeneration_Current.
* Updated button input handling to match the new pad API from libnx.
2020-12-04 02:38:44 -04:00
Pablo Curiel
9732bf9adf libusbhsfs-related changes.
* Free space is now retrieved via statvfs() for all filesystems, including the SD card.
* Updated Makefile to reflect latest libusbhsfs changes (dev branch).
2020-12-02 02:28:35 -04:00
Pablo Curiel
7899fc419c Update usbHsFsInitialize() call to reflect changes in libusbhsfs. 2020-11-28 02:56:54 -04:00
Pablo Curiel
457f468519 Fix comments. 2020-11-28 02:38:53 -04:00
Pablo Curiel
dff9b1defa Revert "Rename FatFs functions to avoid linking issues with libusbhsfs."
This reverts commit 6715242fed.
2020-11-28 02:38:01 -04:00
Pablo Curiel
477c321773 Remove unnecessary code.
libusbhsfs doesn't return FsFileSystem objects, that's why.
2020-11-21 06:29:29 -04:00
Pablo Curiel
6715242fed Rename FatFs functions to avoid linking issues with libusbhsfs. 2020-11-20 04:56:12 -04:00
Pablo Curiel
e8956c0e4b Various changes.
* Cancel USB file transfer if something goes wrong during a NSP transfer via USB.
* Added SD card RomFS dumper.
* Further optimizations to the *WriteNcaPatch() functions.
* Change struct naming in nso.c/h (thanks @0Liam !).
* Replace fsp-usb with libusbhsfs. ( ͡° ͜ʖ ͡°)
2020-11-08 15:08:30 -04:00
Pablo Curiel
5f0f281e2d Added USB ABI specs. 2020-11-01 11:04:38 -04:00
Pablo Curiel
bceff64da4 Fix parent layer chunk size calculation while generating HierarchicalSha256 / HierarchicalIntegrity patches. 2020-10-29 03:51:17 -04:00
Pablo Curiel
0229124173 NACP changes.
Fixed types for some NACP struct entries (thanks @0Liam !) + added functions to generate and write NACP patches.
2020-10-28 18:48:46 -04:00
Pablo Curiel
2b8e80c283 Remove unused code. 2020-10-28 01:03:48 -04:00
Pablo Curiel
57162b5634 CNMT: fixed support for patches. 2020-10-28 00:30:13 -04:00
Pablo Curiel
278afbabfa Title handler bugfixes.
* Fixed possible invalid memory accesses using TitleInfo pointers from gamecard titles if the gamecard they belong to is taken out.
* Fixed invalid for loop condition in _titleGetInfoFromStorageByTitleId() if no gamecard titles have been retrieved.
2020-10-27 17:23:19 -04:00
Pablo Curiel
5c5f388feb Add NSP transfer mode to USB code + implement SendNspHeader USB command.
Completely untested.
2020-10-26 02:39:33 -04:00
Pablo Curiel
da5290189b Optimize modified NCA header(s) write code. 2020-10-25 20:03:02 -04:00
Pablo Curiel
ae6defb0e6 Another typo. 2020-10-25 11:43:22 -04:00
Pablo Curiel
c44b9c998e Add endpoint max packet size field to the UsbStatus response block.
And fix typos. lol
2020-10-25 11:42:53 -04:00
Pablo Curiel
7e2aa976b4 Rename KEY_NONE definition. 2020-10-22 16:13:00 -04:00
Pablo Curiel
974790944f More changes.
* Added NSP dumper PoC (SD card only atm, single-threaded).
* Cert: replaced a wrong strcmp() with a proper strncmp().
* CNMT: added functions to update content info entries and generate/write Partition FS patches.
* NCA: encrypt key area right after removing titlekey crypto.
* NPDM/ProgramInfo: changed function names.
* NPDM: check if the NCA has been modified before attempting to patch ACID data + calculate RSA-PSS signature *after* generating the PFS patch, not before. lol
* PFS: restore name table size value before writing the header padding.
* Tik: reworked the ticket lookup algorithm. Now uses information from ticket_list.bin to properly calculate the offset to the requested ticket in ticket.bin.
* Title: changed title type strings used for filename generation.
* Updated to-do list.
2020-10-22 00:38:14 -04:00
Pablo Curiel
15431ec2c8 Many changes.
* AES: moved CTR initializing/updating functions here from nca.c.
* BKTR/RomFS/PFS: check if we're dealing with a NCA with titlekey crypto and the titlekey hasn't been retrieved.
* BFTTF: use void pointers for output font data.
* Mem: Only exclude Unmapped/Uo/ThreadLocal/Reserved memory pages if dealing with FS.
* NCA: use content type context pointers inside NCA contexts to manage ContentMeta, ProgramInfo, Nacp and LegalInfo contexts.
* NCA: added 'written' bool elements to patch structs to indicate patch write completion.
* NPDM: remove unnecessary inline functions, generate PFS patch right after changing ACID data, add a pfsWriteEntryPatchToMemoryBuffer wrapper.
* PFS: added PartitionFileSystemFileContext and related functions to deal with NSP headers.
* ProgramInfo: removed unnecessary inline functions.
* Save: added commented code to dump a full system savefile - will probably use it down the road.
* Tik: added support for volatile tickets (thanks to @shchmue and @Whovian9369!), added a rights ID string representation to the Ticket struct, clear Volatile and ELicenseRequired flags in conversions to common tickets.
* Title: added a function to calculate the number of titles (current + siblings) from a TItleInfo block.
* Utils: added a function to generate a dynamically allocated path string using a prefix, a filename and a extension.
* Removed explicit offset checks throughout all the code.
* Codestyle fixes.
* Updated to-do.
2020-10-21 00:27:48 -04:00
Pablo Curiel
bd98fd4c32 Replace unnecessary strlen() calls with pointer dereferences or calculations using info available at runtime (when possible).
This should probably improve performance a little bit in certain sections.
2020-10-14 20:06:53 -04:00
Pablo Curiel
6f4cb98033 Cleanup startup logfile messages. 2020-10-14 19:08:01 -04:00
Pablo Curiel
5b22fe07f2 More code cleanup. 2020-10-14 14:58:33 -04:00
Pablo Curiel
13efdb6074 Update bfttf.h 2020-10-14 09:24:56 -04:00
Pablo Curiel
e6bb15d608 Implemented BFTTF font loading and decoding.
Some people may call me a madman but I don't want to see any more nxdumptool screenshots with a Disney-like font. *war flashbacks*
2020-10-14 09:23:49 -04:00
Pablo Curiel
44965430b3 Even more code cleanup.
* Added a function to write re-encrypted NCA and/or FS section headers. Getting ready to re-implement NSP dumping.
* Added more CNMT XML fields (thanks 0Liam).
* Updated my to-do list because I'm dummy.
2020-10-13 20:15:21 -04:00
Pablo Curiel
ba4fdcd01c Code cleanup.
* Added 'encrypted_header' members to both NcaContext and NcaFsSectionContext. In-place re-encryption isn't desirable in this case.
* Fixed FsAccessControl-related type naming for ACI0 blocks.
2020-10-13 10:00:03 -04:00
Pablo Curiel
3ab65d8dca Fix support for CNMTs with no ContentInfo entries. 2020-10-12 22:46:59 -04:00
Pablo Curiel
ebd97d7c82 Add FsAccessControlData to ProgramInfo XML.
Also:

* Fixed support for NSOs with invalid module_name, api_info, dynstr and/or dynsym offsets/sizes.
* Updated the XML generator example to generate XML data for all available NCAs, regardless of their ID offset values.
2020-10-12 16:35:47 -04:00
Pablo Curiel
84f651eae8 Further improvements to the ProgramInfo XML generation code. 2020-10-12 12:02:44 -04:00
Pablo Curiel
7059bacfce Improved ProgramInfo XML generation.
Also added some additional fields. Thanks to 0Liam.
2020-10-12 00:59:50 -04:00
Pablo Curiel
40fc21b5a3 Fix ProgramInfo and NSO issues.
XML generation confirmed to be working. The new algorithm faithfully reproduces the same output from legacy nxdumptool with much less overhead and memory usage.
2020-10-11 20:40:54 -04:00
Pablo Curiel
3affe1f4d0 ProgramInfo AuthoringTool-like XML generation.
Untested. Completely reworked both Middleware and ELF symbol parsing from NSOs.
2020-10-11 15:55:01 -04:00
Pablo Curiel
495e331306 Fix support for NSOs without a valid .api_info section + ProgramInfo context.
ProgramInfo XML generation is still missing. Getting real close to reimplementing NSP dumping.
2020-10-11 14:13:09 -04:00
Pablo Curiel
f45d1a21b5 Verify decompressed .rodata segment hash. 2020-10-11 13:23:58 -04:00
Pablo Curiel
e3e6552c4e NSO context.
Also updated LZ4 to latest stable release to allow for in-place decompression.
2020-10-11 11:22:26 -04:00
Pablo Curiel
62945728c7 Fix wrong NCA ACID signature area size. 2020-10-10 17:12:35 -04:00
Pablo Curiel
9f010c4129 NPDM ACID public key replacement + NCA ACID signature recalculation. 2020-10-10 17:08:17 -04:00
Pablo Curiel
2066b11d5a NPDM context. 2020-10-10 15:29:14 -04:00
Pablo Curiel
dcbedbf13a Remove homebrew-only NSO extensions. 2020-10-10 11:38:06 -04:00
Pablo Curiel
1de967ed42 NSO structs (thanks 0Liam). 2020-10-10 11:35:14 -04:00
Pablo Curiel
3e59d15bc4 Minor template tweaks + LegalInfo fix. 2020-10-10 06:10:50 -04:00
Pablo Curiel
d1f0361725 Update NPDM structs (thanks to 0Liam) + LegalInformation XML retrieval.
From now on, I'll delete code from the legacy codebase directory as soon as specific features from it are rewritten... Because it's a mess to navigate.
2020-10-09 05:58:53 -04:00
Pablo Curiel
4425666395 NPDM support (part 1).
Only added header file with structs and enums. Actual functions come next but I'm tired atm.
2020-10-08 17:52:31 -04:00
Pablo Curiel
1c15a096b5 Codestyle fixes + prepare code for NPDM support. 2020-10-08 14:31:09 -04:00
Pablo Curiel
e943e84380 Unified XML generator + finished NACP parsing.
Big thanks to 0Liam.
2020-10-06 11:41:26 -04:00
Pablo Curiel
2859f26cb3 NACP: add NeighborDetectionClientConfiguration and RequiredAddOnContentsSetBinaryDescriptor to XML generation.
This is tentative. I need to look into how these fields are really parsed / appended to the XML.
2020-10-06 02:00:18 -04:00
Pablo Curiel
7573c53457 Fix silly bug in titleGetNcmContentMetaTypeName. 2020-10-04 06:40:56 -04:00
Pablo Curiel
afa99ba445 Added info about XCI header keys. 2020-10-04 05:25:42 -04:00
Pablo Curiel
1e41148c02 NACP parsing (part 2).
NeighborDetectionClientConfiguration and RequiredAddOnContentsSetBinaryDescriptor haven't been implemented (yet).
2020-10-04 03:05:05 -04:00
Pablo Curiel
d385d40862 NACP parsing (part 1).
God, I'm so tired. I'll go play some good old MGS3 and continue this stuff at a later time. It builds, though.
2020-10-03 13:09:29 -04:00
Pablo Curiel
fa1b9c70a5 NCA changes. 2020-10-02 22:37:05 -04:00
Pablo Curiel
d440d88bbe CNTM: type name consistence. 2020-10-02 06:28:41 -04:00
Pablo Curiel
98b7a309b3 CNMT AuthoringTool-like XML generation. 2020-10-02 05:53:58 -04:00
Pablo Curiel
6e32829cf1 CNMT parsing. 2020-10-01 02:17:59 -04:00
Pablo Curiel
97d9603e93 BKTR: add support for games with base Program NCAs without a RomFS section. 2020-09-26 06:49:18 -04:00
Pablo Curiel
1a6f2ee50c Rename some reserved fields. 2020-09-24 13:03:26 -04:00
Pablo Curiel
38f19351a9 Add build script. 2020-09-22 21:13:39 -04:00
Pablo Curiel
083874bd4e Fix unaligned reads from the gamecard secure storage area.
Big thanks to Whovian for finding the bug and testing the change.
2020-09-19 06:21:23 -04:00
Pablo Curiel
b806c2e7d0 Support multi-program titles in the RomFS dumper. 2020-09-19 02:59:31 -04:00
Pablo Curiel
01ff151946 Update fs_ext.h 2020-09-18 23:18:32 -04:00
Pablo Curiel
679aa170b5 Some small changes.
* tik: check for common certificate availability before attempting to convert a personalized ticket to a common one. The raw common certificate chain data for the ticket signature issuer is now returned.

* usb: skip waitMulti call in the USB background thread if an invalid endpoint max packet size was received from the USB host in the previous while loop iteration.
2020-08-27 15:18:31 -04:00
Pablo Curiel
d6cdfe5c06 Perform title sorting at startup and in the background gamecard title info thread, not while retrieving data using non-static functions.
Orphan titles are now sorted by title ID.
2020-08-20 20:18:05 -04:00
Pablo Curiel
a19d3f2338 Ditched C threads in favor of libnx threads.
Preemptive multithreading is still used, just like libnx's newlib implementation.

Also changed the version number because the rewrite deserves it.
2020-08-18 01:04:13 -04:00
Pablo Curiel
1e50cec315 Update usb.c 2020-08-17 17:31:24 -04:00
Pablo Curiel
dfa425790a Get endpoint max packet size from USB host to properly enable ZLT packets when needed.
Also updated the diff patch for ns-usbloader.
2020-08-17 17:30:47 -04:00
Pablo Curiel
f724eaa9a9 Update utils.c 2020-08-15 17:25:40 -04:00
Pablo Curiel
6b8b3184ac Fixes for development units + diff patch for ns-usbloader.
Big thanks to ZachyCatGames.
2020-08-15 17:22:49 -04:00
Pablo Curiel
ace4732fda Functions to generate gamecard/title filenames + fix CRC32 calculation.
Updated the threaded gamecard dumper to reflect these changes.
2020-08-13 22:31:02 -04:00
Pablo Curiel
7606f7b40a Clear previous and next pointers from user application entries while freeing gamecard title info entries. 2020-08-13 14:20:53 -04:00
Pablo Curiel
90c6d8a9f8 Use linked lists to deal with user applications available in multiple storages at the same time. 2020-08-13 14:12:33 -04:00
Pablo Curiel
ad401d559d New template: threaded gamecard dumper via USB.
Key area and certificate can be optionally appended and/or preserved, respectively. Trimming is supported.

Also added a bunch of ZLT packet related fixes to usb.c, as well as a function to properly cancel an ongoing file transfer.
2020-08-13 02:01:23 -04:00
Pablo Curiel
e26637125b Add slightly better scrolling + title counter. 2020-08-03 17:41:00 -04:00
Pablo Curiel
3105540c99 Block HOME button presses during dumping operations in code templates. 2020-08-03 14:13:24 -04:00
Pablo Curiel
032a4fc22c Perform gamecard initial data area lookup only on demand. 2020-08-01 01:17:08 -04:00
Pablo Curiel
ca333bd71d Missing fs commit changes. 2020-08-01 00:52:40 -04:00
Pablo Curiel
64f3a566f8 Commit filesystem changes when needed. 2020-08-01 00:43:55 -04:00
Pablo Curiel
b11df5e732 Remove unnecessary line breaks. 2020-07-30 18:42:53 -04:00
Pablo Curiel
5d1944b43c Move title info dump code to a template. 2020-07-30 18:40:02 -04:00
Pablo Curiel
3f837cef05 Simple functions to deal with orphan titles...
... No way to avoid them, I guess.
2020-07-30 18:37:45 -04:00
Pablo Curiel
bb8cba1eaa Threaded gamecard title info/metadata retrieval. 2020-07-30 17:43:50 -04:00
Pablo Curiel
cd8afd2cd8 Fixed gamecard key area template. 2020-07-30 16:01:26 -04:00
Pablo Curiel
7c4e7a4db0 New test app: system title NCA section dumper. 2020-07-29 17:02:21 -04:00
Pablo Curiel
5320260b4e Better names for TITLE_* defines. 2020-07-28 02:20:19 -04:00
Pablo Curiel
64766be416 Update title.c 2020-07-27 23:38:45 -04:00
Pablo Curiel
98f3f85a31 Bunch of title related changes.
* Improved patch and add-on content title ID verification against a base application title ID.
* Implemented linked lists in TitleInfo structs, which make it easier to deal with multiple patches / add-on contents belonging to the same application.
* TitleApplicationMetadata elements are retrieved with titleGetApplicationMetadataEntries() and used by the UI to display title entries. An 'is_system' filter argument is used to determine which kind of metadata should be retrieved. These are ordered by ID (system titles) or alphabetically (user applications) using qsort().
* Added TitleUserApplicationData struct, which is populated when an user application is selected.
* Tweaked titleRefreshGameCardTitleInfo() behaviour a little bit. Now returns true whenever there are title info changes, so the UI can reload the list.
* Temporarily commented out title info logging from titleInitialize().
* Fixed decrypted key retrieval from the NCA key area for patches with titlekey crypto removed.
* Implemented a very small menu to select a title to dump.
2020-07-27 23:32:08 -04:00
Pablo Curiel
62366327ee Reduce memory footprint + hardcode system title names.
Also increased the USB timeout again, since 1 second seems to be too low for gamecard transfers.

Big thanks to Whovian for helping me format that long system title list.
2020-07-26 04:00:54 -04:00
Pablo Curiel
158e424b96 List content infos as part of title list entries.
Finally got rid of location resolver stuff.
2020-07-26 00:57:12 -04:00
Pablo Curiel
2521ac3f15 List titles from the inserted gamecard. 2020-07-25 14:50:42 -04:00
Pablo Curiel
e4a6e0e77a Begin work on title listing stuff. 2020-07-25 01:56:35 -04:00
Pablo Curiel
8a54ea4823 Supress unnecessary log messages. 2020-07-23 17:57:43 -04:00
Pablo Curiel
ee5a08f5d9 Trivial changes. 2020-07-23 17:30:01 -04:00
Pablo Curiel
e7f2c927c2 FIx small overlook. 2020-07-22 21:34:13 -04:00
Pablo Curiel
c8c062e7fa Test unified NCA hash layer write function (works gucci). 2020-07-22 20:37:02 -04:00
Pablo Curiel
b8d80bf260 Functions and wrappers to write generated NCA hash layer patches. 2020-07-22 16:35:23 -04:00
Pablo Curiel
90e0f057bc Bunch of changes.
* Updated NCA structs (including NcaSparseInfo).
* Changed the way NCA header + NCA FS header decryption is handled.
* Changed the way the NCA encrypted key area is handled.
* Unified hierarchical patch generation functions.
* Updated PFS, RomFS and BKTR functions accordingly to reflect NCA handling changes.
* Logfile path is now relative.
* Gamecard initial data lookup code now uses the initial data hash from the gamecard header (a tad bit slower, but way more failproof).
2020-07-22 04:03:28 -04:00
Pablo Curiel
cddf57363c Remove wrong references to ECC data in gamecards. 2020-07-17 14:42:48 -04:00
Pablo Curiel
6bee2c5d20 Tweaked gamecard code.
Modified gamecard handle retrieval and storage area mounting. Added gamecard status codes.
2020-07-17 01:01:31 -04:00
Pablo Curiel
95d5bda83a Update main.c 2020-07-15 19:45:06 -04:00
Pablo Curiel
88d3e0de8d Support for the "boot" partition in Terra gamecards. 2020-07-15 19:43:58 -04:00
Pablo Curiel
eba26a59a5 Changes to the gamecard key area handling. 2020-07-15 18:50:34 -04:00
Pablo Curiel
5082a54571 Glorified Patch RomFS dumper. lol 2020-07-13 12:33:22 -04:00
Pablo Curiel
73861bc52f Normalize goto tag names + support for gamecard key area.
Big thanks to SciresM.
2020-07-13 02:36:17 -04:00
Pablo Curiel
8baa5800a1 Proper USB background thread exit. 2020-07-12 12:37:03 -04:00
Pablo Curiel
400cab42a0 USB tweaks. 2020-07-12 11:29:08 -04:00
Pablo Curiel
90951f9baa Check the right event index. 2020-07-07 12:39:20 -04:00
Pablo Curiel
8c90f64d7f Codestyle fixes. 2020-07-07 11:51:33 -04:00
Pablo Curiel
85748c99c5 Small NCA0 change. 2020-07-07 11:20:29 -04:00
Pablo Curiel
0c34ef84ac Check the key generation value from the eticket device key. 2020-07-07 08:58:17 -04:00
Pablo Curiel
11e9d6612a Forgot to update bktr.c/h accordingly. 2020-07-07 07:55:37 -04:00
Pablo Curiel
b71f0d7b87 Some more changes.
* Codestyle fixes.
* NCA contexts for NCAs with titlekey crypto will now be generated even if the ticket can't be retrieved, in order to be able to use ncaReadContentFile() with them.
* Moved aes128XtsNintendoCrypt() out of nca.c.
2020-07-05 20:10:07 -04:00
Pablo Curiel
99429fd7b4 Bunch of changes.
* Updated disclaimer in all source files.
* Improved signed payload (certificate, ticket) handling.
* Prefer strlen + strcmp over strncmp whenever possible.
* Simplify header file inclusions in source files.
* Simplify background gamecard thread logic.
* Properly close keys file handle if there's a key parse error.
* Update NcaKeyGeneration enum.
* Small changes to save.c/h.

Will probably have to revert some USB changes...
2020-07-03 05:31:22 -04:00
Pablo Curiel
3e47dd180d Fix compatibility with libnx v3.2.0. 2020-05-14 22:59:57 -04:00
Pablo Curiel
1ebc106b79 Manage USB transfer session using a background thread. 2020-05-13 10:09:51 -04:00
Pablo Curiel
a3790dd0d6 Mooore USB fixes. 2020-05-11 15:12:03 -04:00
Pablo Curiel
d6179f77fb USB optimizations. 2020-05-11 08:11:06 -04:00
Pablo Curiel
a02c806b60 Extracted RomFS dumping via USB. 2020-05-10 12:40:12 -04:00
Pablo Curiel
b39ab27a52 Silly correction. 2020-05-10 05:07:31 -04:00
Pablo Curiel
d629f21e8c Fix fatals. 2020-05-09 13:09:22 -04:00
Pablo Curiel
47297daf3a Some more USB fixes. 2020-05-09 09:49:02 -04:00
Pablo Curiel
1f05a39560 Update usb.c 2020-05-09 02:32:01 -04:00
Pablo Curiel
daedae88a8 Small USB status codes update. 2020-05-09 00:48:46 -04:00
Pablo Curiel
a7698e435e USB protocol updated. 2020-05-07 23:48:22 -04:00
Pablo Curiel
61fb465e2a Additional USB changes. 2020-05-07 07:08:54 -04:00
Pablo Curiel
97f7a46a91 Fix deadlock. 2020-05-06 10:36:17 -04:00
Pablo Curiel
257e1c8dfd Some more USB related changes. 2020-05-06 10:04:10 -04:00
Pablo Curiel
5c46bfe2ab Update usb.h 2020-05-06 02:05:25 -04:00
Pablo Curiel
bd6f67d57a Protocol -> ABI.
Also add this to the handshake command block.
2020-05-06 02:01:00 -04:00
Pablo Curiel
253e72786b Tweaks to utilsReplaceIllegalCharacters.
We won't need to replace characters outside of the ASCII range for USB transfers.
2020-05-05 14:04:23 -04:00
Pablo Curiel
298676ae46 Preliminar Switch <-> PC protocol using usb:ds. 2020-05-05 11:22:16 -04:00
Pablo Curiel
444c82b7c0 Save exception info to logfile.
Benchmark test updated to dump the inserted gamecard.
2020-05-04 14:15:03 -04:00
Pablo Curiel
76b19aed96 Threaded I/O test.
Takes roughly 15 minutes to dump SSBU's data.arc - basically a whole GiB per minute. Which is real nice, considering all the crypto layers we're dealing with.
2020-05-03 10:55:13 -04:00
Pablo Curiel
08b2aed130 Gamecard usermode status change event.
Useful to wait for gamecard status changes on other threads.
2020-05-03 04:40:08 -04:00
Pablo Curiel
109913cb18 Fix gamecard deadlock. 2020-05-02 20:36:09 -04:00
Pablo Curiel
2e48a22f8c Improve thread-safety. 2020-05-02 19:40:50 -04:00
Pablo Curiel
9148b4e0dd Looks better this way. 2020-05-01 11:22:08 -04:00
Pablo Curiel
050f881cf6 derp 2020-05-01 11:11:18 -04:00
Pablo Curiel
91fdff7816 Codestyle fixes. 2020-05-01 11:06:24 -04:00
Pablo Curiel
e2b4ebc5d4 BKTR: updated file entry detection. 2020-05-01 00:34:30 -04:00
Pablo Curiel
efb9b2d103 BKTR finished. 2020-04-30 07:24:08 -04:00
Pablo Curiel
4774aeae9c BKTR done, needs testing. 2020-04-30 04:25:03 -04:00
Pablo Curiel
e1e38bcfc2 derp 2020-04-29 17:16:59 -04:00
Pablo Curiel
b64bcf5451 Fix mem leaks in PFS/RomFS initializers.
Also renamed Ecsda240 -> Ecc480 and added a new Hmac160 signature type.
2020-04-29 17:11:27 -04:00
Pablo Curiel
7e8fa96829 Remove NcaEncryptionType_Nca0 + BKTR start. 2020-04-29 08:59:28 -04:00
Pablo Curiel
7aa72dc618 Remove unnecessary RomFS context members. 2020-04-29 07:55:23 -04:00
Pablo Curiel
08bfb89adb Another PFS patch test, works gucci. 2020-04-29 06:55:20 -04:00
Pablo Curiel
18531961ca RomFS file entry patching working. 2020-04-29 05:54:40 -04:00
Pablo Curiel
e1b1dfc648 Reworked FS section patching. 2020-04-28 04:58:17 -04:00
Pablo Curiel
226fbd0e21 Small PFS fix. 2020-04-28 00:38:24 -04:00
Pablo Curiel
2c252c03b2 Control.nacp reading.
First step towards RomFS modification.
2020-04-27 22:33:38 -04:00
Pablo Curiel
278142fd22 RomFS done.
Modifications method still missing though.
2020-04-27 19:30:35 -04:00
Pablo Curiel
efe76093e4 RomFS (almost) done.
Need to test read functions.
2020-04-27 18:37:15 -04:00
Pablo Curiel
bc93001525 RomFS ctx working.
Need to create filepath methods.
2020-04-26 06:04:31 -04:00
Pablo Curiel
c6eaf3c8b6 PFS0 mod data + RomFS start. 2020-04-26 04:35:01 -04:00
Pablo Curiel
dccb33ab0c PFS0 read improved. 2020-04-24 14:42:16 -04:00
Pablo Curiel
7c8bf5c831 PFS0 context. 2020-04-24 05:38:13 -04:00
Pablo Curiel
76550adab8 NCA read finished. 2020-04-22 16:53:20 -04:00
Pablo Curiel
0e5683b880 NCA read (almost) done.
Missing BKTR stuff.
2020-04-21 06:23:33 -04:00
Pablo Curiel
ccf36f4963 NCA process done. 2020-04-20 06:39:41 -04:00
Pablo Curiel
cf8ab4d4ac More improvements. 2020-04-19 18:44:22 -04:00
Pablo Curiel
1b45cdf05a Mooooore baby steps.
I can finally continue the NCA handler.
2020-04-17 17:59:05 -04:00
Pablo Curiel
9679eb72bb Hash FS start. 2020-04-16 06:13:11 -04:00
Pablo Curiel
d3ad9d84b6 More changes. 2020-04-16 00:37:16 -04:00
Pablo Curiel
c83858311b More baby steps. 2020-04-15 20:06:41 -04:00
Pablo Curiel
eccd3f0c1c Baby steps. 2020-04-15 16:50:07 -04:00
Pablo Curiel
65e40e7600 Gamecard rewrite. 2020-04-15 01:59:12 -04:00
Pablo Curiel
e5a4532a63 First commit. 2020-04-11 01:28:26 -04:00