Commit Graph

45 Commits

Author SHA1 Message Date
zhupengfei b06440aefb Fix some LGTM alerts 2020-08-07 16:03:22 +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 769162e95c ncch_container: Fix progress report in DecryptToFile
The total size should now be correct
2020-08-07 08:55:38 +08:00
zhupengfei bf3fe550f8 ncch: Fix Secure1 with seed
Citra's code was wrong here.
2020-08-06 23:03:19 +08:00
zhupengfei ac6f95c067 tmd: Changes in preparation for CIA building 2020-08-06 20:34:59 +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 c8f510188c core/ncch: Add ticket
Added structure and fake ticket building (from GodMode9)
2020-08-03 22:47:09 +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 10122a376c Re-add TMD modification code from Citra 2020-08-02 15:49:07 +08:00
zhupengfei 1f91cbdaec Use virtual classes instead of templates for file interfaces
For convenience.
2020-08-01 09:47:44 +08:00
zhupengfei 518c995f38 Fix std::min 2020-06-20 22:37:01 +08:00
zhupengfei 57a1245e2a Add proper error handling for memcpy 2020-05-16 19:09:50 +08:00
zhupengfei 1c28fff725 Improve error handling.
Do not cancel the entire process when an error occurs. Instead, return a list of failed contents.
2020-05-16 15:13:52 +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 0f7ebef23f Fixed a crash 2020-05-01 13:11:10 +08:00
zhupengfei c27589ce53 core: Add DecryptToFile in NCCHContainer 2020-05-01 11:59:24 +08:00
zhupengfei b5b2fa32cb core/ncch: Add back secondary key derivation from Citra
Along with RomFS CTR, etc.
2020-04-30 20:03:54 +08:00
zhupengfei f0de8da515 core: Makes it possible to skip decryption part in QuickDecryptor
Bad name, huh?
2020-04-30 18:54:10 +08:00
zhupengfei c831a0785e core: Generalize QuickDecryptor
This is now a class template. This would be useful when we implement NCCH decryption.
2020-04-30 18:05:58 +08:00
Pengfei Zhu 576053d995 Fix compilation 2020-04-22 23:27:41 +08:00
zhupengfei 376012e95e Fixed minor UI errors 2020-04-18 23:35:16 +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 201c8adf2f frontend: Add utilities 2020-01-20 18:57:35 +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
zhupengfei cd5eccd32a Fix DLCs not imported correctly, fix progress not reported correctly 2019-10-04 15:45:39 +08:00
zhupengfei 5cbe69388f Add support for config savegame 2019-10-02 20:06:39 +08:00
zhupengfei 5d675d605a Add system archives import 2019-10-02 16:00:32 +08:00
zhupengfei 479dd327df core, frontend: Group contents by title / game instead of category
I may look to introduce a option to select in the future
2019-09-27 23:33:39 +08:00
zhupengfei 895cbb272c Add in NCCH, TMD and SMDH from Citra (to get game title) 2019-09-27 22:11:27 +08:00
zhupengfei d55af0108e core, frontend: Better progress reporter
A new "quick" decryptor is implemented. This is not really much faster (not slower either) but provides the benefit of being able to report progress on a single file. The frontend is updated accordingly to support this feature.
2019-09-12 22:08:44 +08:00
zhupengfei ccffd51904 Update logging system
- Update to fmt 6.0.0
- Updated logging system to be macro based
- Fixed a bug with including
2019-09-05 23:05:16 +08:00
zhupengfei 67e6b05e87 lots of important fixes
- DPFS container is fixed
- SD Savegame is fixed
- added slot0x25KeyX load
- added regex for titile ID
- added aes_keys.txt import
- sd savegame listing is fixed (uninitialized won't be listed any more)
- error handling is improved (removed asserts and replaced with return values)
- UI is now functional
- config is now checked in main
2019-08-30 15:33:47 +08:00
zhupengfei 8acfe9f304 UI updates
- add import dialog
  this is more complex than I thought
- added scope exit
  grammar sugar
- main dialog is now linked to import dialog
- importer citra file path is fixed
- importer now reports maximum size
- file util is improved with GetDirectoryTreeSize
2019-08-28 23:02:30 +08:00
zhupengfei 7df0b63a1e updates
- implemented frontend
- namespaced Core
- imported qdevicewatcher
- fixed bug in logging (more like in misc)
2019-08-28 19:16:05 +08:00
zhupengfei fd5106759a build system updates and other fixes
add preset config
import qt
separate core and frontend
2019-08-28 11:43:44 +08:00
zhupengfei d612b9cf37 misc changes
- Add dumper script
- Fill importer code
- other fixes
2019-08-26 23:20:02 +08:00
zhupengfei 4f5a3effd8 Initial commit 2019-08-24 23:30:22 +08:00