Replies: 3 comments 2 replies
-
maybe just one simple config file replace source code(static array) like solutions B, and it's even work without network(in some network limit place). |
Beta Was this translation helpful? Give feedback.
-
Sadly the latest successful Action Build has expired, and the new code do not build. |
Beta Was this translation helpful? Give feedback.
-
The latest build can be downloaded from https://gbatemp.net/download/nx-nand-manager.38831/ that's the version 5.2 commit e8b5ce5 which is the most recent commit what builds from code, posterior commits have errors and can not be build. once those errors will be corrected you should get the most recent from Action Menu |
Beta Was this translation helpful? Give feedback.
-
Actually that's not an issue. NxNandManager must be updated to detect new firmware versions.
How it works now
A firmware package contains a specifc title (program):
0100000000000809 (SystemVersion)
. Materially, this program is binary data stored inside a NCA file (Nintendo Content Archive) whose filename is different for each firmware version.For example:
A static array in source code, manually updated, references each NCA filename and corresponding version.
When the suitable bis key is provided, NxNandManager will scan the content of SYSTEM:/Contents/registered. If a *.nca file inside this folder matches an entry in the array, you get your firmware version. Simple as that.
How to get the new NCA filename each time the firmware is updated ?
A firmware package is just a bunch of NCAs. All theses files are fully encrypted.
With the right keys, you can decrypt NCA header (first 0xC00 bytes) where the program Id (title Id) is stored. If the program Id is 0100000000000809, you know this is "SystemVersion".
So every time a firmware package is released, with a program like hactool, you can get the SystemVersion's filename by inspecting the package.
What's the problem?
Solutions
A) Implement NCA header decryption
B) Request a remote DB to get the latest nca filenames instead of a static array
C) ???
Implementation
Solution B. Will only work with Qt (GUI version).
Remote DB ✔️ https://eliboa.com/switch/nca.php
DB request implementation ✔️
Quality tests ✔️
Release ✔️
Beta Was this translation helpful? Give feedback.
All reactions