Commit Graph

62 Commits

Author SHA1 Message Date
Pengfei 9fbdf6f529 Reorganize code 2021-08-09 16:34:03 +08:00
Pengfei 6013879213 Removed 'Encryption' column 2021-08-09 10:53:37 +08:00
Pengfei 09f3f46515 Add more content type traits 2021-08-09 10:41:49 +08:00
Pengfei d0da439731 Implement contents check 2021-08-09 00:42:45 +08:00
Pengfei ea24716a38 Add checks for TMD and Ticket 2021-08-08 17:26:34 +08:00
Pengfei 3d68baf55c Preliminary work for a title info dialog
pending DRY fixes, etc
2021-08-08 15:52:00 +08:00
Pengfei fb395d6dc1 Convenience - detect auto_filename 2021-08-07 14:36:47 +08:00
Pengfei beafa2b7a4 Change filename format to better match GM9's 2021-08-07 12:29:48 +08:00
Pengfei 327a5a52a9 Fix for DLC 2021-08-07 10:48:43 +08:00
Pengfei ed8d6a1a82 Add support for system applets 2021-08-07 01:00:39 +08:00
Pengfei be9e1386c3 Change CIA building to be TMD-oriented
... just like how it should be.
2021-08-06 14:56:54 +08:00
Pengfei d4e1404788 Fixes to CIA building
1. Optimizes ticket finding
2. Fixes progress reporting overshoot
3. Use u64 for size in general
4. Various other fixes and cleanups
2021-08-06 00:55:35 +08:00
Pengfei 1fe45d890c More refactor going on 2021-08-04 11:25:39 +08:00
Pengfei c7b66f6308 Pointless huge refactor 2021-08-04 11:11:52 +08:00
Pengfei 22ebf68b90 Remove ResultStatus
And instead use bool to represent result, which is simpler and more consistent, as there's no error reporting anyways.
2021-08-04 09:58:17 +08:00
Pengfei 1f0a969cb7 Add CIABuildDialog 2021-08-04 00:35:01 +08:00
Pengfei bbcad43d1c Fix. 2021-08-03 15:21:13 +08:00
Pengfei 781d76bdab Use destructor to release file handle
Instead of relying on writing `file.reset()`s
2021-08-02 00:53:03 +08:00
Pengfei aed564fb25 Add Legit CIA building 2021-07-31 17:28:00 +08:00
Pengfei 75f79e10d1 Generalize QuickDecryptor 2021-07-31 17:25:56 +08:00
Pengfei 502e05dc2b Add CIABuildType to CIABuilder; Add legit ticket handling 2021-07-29 16:38:41 +08:00
Pengfei 325832f318 Misc changes to ticket, cert and CIA 2021-07-28 00:27:01 +08:00
Pengfei 6fbbae7039 Rework failed task cleanup
Now the cleanup of failed tasks (deletion of borked files) is handled by the related task itself, instead of the frontend.
2021-07-12 11:47:42 +08:00
Pengfei 76b0912a9a Add proper support for CIA title keys
1. Support for `ticket.db`
2. Support for `gm9/support/encTitleKeys.bin`
3. Set the title key and common key index when building standard CIA
2021-07-09 20:08:42 +08:00
Pengfei cb6d58b538 Replace file writes with new helper 2021-07-06 16:42:22 +08:00
Pengfei c81db424bb Refactor InnerFAT into Savegame and Extdata
And derive TitleDB from it too.
2021-07-06 16:11:03 +08:00
Pengfei 3d4d815595 Fix build for outdated compilers on CI 2021-07-01 15:34:09 +08:00
Pengfei 19bc9d0210 Use GodMode9 naming scheme 2021-07-01 15:22:38 +08:00
Pengfei e2bef4d705 Add support for title.db, and use title.db to augment TMD finding
Also added support for system title CIA building, and fixed various minor issues.
Also moved MakeMagic to Common.
2021-07-01 14:13:20 +08:00
Pengfei 2575e7fdde Unify ProgressCallbacks to a Common::ProgressCallback 2021-06-28 22:50:16 +08:00
zhupengfei 7aff22c3fc Fix build 2020-11-28 20:16:15 +08:00
zhupengfei 5c595a8046 Add IOFile::GetData 2020-11-28 20:12:24 +08:00
zhupengfei 9cbec118cd core: Add NAND data importing 2020-11-28 17:20:46 +08:00
zhupengfei 2688a6ef61 Move System Applets into a new category and deselect by default
As they are known to cause problems with Mii Maker and games like Tomodachi Life.
2020-11-28 15:39:59 +08:00
zhupengfei 66b09ffa27 A bunch of fixes to CIA building
1. Clean stale state
2. DLC CIAs
3. Build content index for ticket better
2020-08-07 12:28:47 +08:00
zhupengfei 49ddd86b7a Add CIA building
Quite a lot of code, yeah.

The built CIA is almost identical to GM9, with the following differences:
1. Paddings are zeroed out
2. Title key is not written (GM9 gets it from support data/ticket db)
3. Ticket content index is slightly different (GM9 likely takes it from the legit ticket, while we are building a fake one)

The 2, 3 points can be fixed probably.
2020-08-07 08:58:09 +08:00
zhupengfei 13409503bf ncch: Fix some issues with DecryptToFile
Now have byte-for-byte accuracy against Godmode9

Now uses a file instead of a path

Preliminary work to support non-executable files
2020-08-06 20:34:10 +08:00
zhupengfei 900275bffd Dump certs.db
This is used to build CIAs. Currently only retail certs are supported
2020-08-03 22:47:08 +08:00
zhupengfei 1f91cbdaec Use virtual classes instead of templates for file interfaces
For convenience.
2020-08-01 09:47:44 +08:00
zhupengfei 57a1245e2a Add proper error handling for memcpy 2020-05-16 19:09:50 +08:00
zhupengfei 5d008fc952 Add version check 2020-05-15 23:08:59 +08:00
zhupengfei 450cef3fca Added a fallback title based on codeset info 2020-05-15 22:34:39 +08:00
zhupengfei b19803c4d3 Add support for system titles 2020-05-14 23:14:59 +08:00
zhupengfei 24bdf0a156 core, frontend: Add 'Dump CXI file' option
Right click on an application in the Select Contents dialog.
2020-05-02 00:06:46 +08:00
zhupengfei 2c4dd84d49 Correctly load seeds 2020-05-01 15:05:01 +08:00
zhupengfei f60fc572be Code cleanup
Replacing macros with lambdas
2020-05-01 13:31:55 +08:00
zhupengfei c6d561d4ed core: Add slot0x18KeyX and slot0x1BKeyX 2020-05-01 13:24:34 +08:00
zhupengfei 6b7faf2c05 core: Add support for proper SeedDB import
This now merges the SeedDB to import with the one already existing
2020-04-18 23:34:51 +08:00
zhupengfei 94b9ec028b Display title icon; display title icon and names for save/extdata in group mode 2020-01-17 12:10:44 +08:00
zhupengfei 0708744a17 Added encryption scheme display. 2020-01-17 10:10:58 +08:00