Hacking RELEASE Firmware Version Inspector - get FW version from NAND dump

  • Thread starter Thread starter shchmue
  • Start date Start date
  • Views Views 46,343
  • Replies Replies 119
  • Likes Likes 38
Have more than one NAND dump? Forgot to rename or label them?
Good news! Now you can quickly find out what firmware version a given backup contains.

Download:
Firmware Version Inspector - by shchmue on Github

Usage:
Install Python 3 and pycryptodome. In command prompt, type:
Code:
pip install pycryptodome

If this is an encrypted backup like Hekate makes (ie. you haven't dumped a decrypted System partition via HacDiskMount), you need to provide your console-specific BIS key 2. Dump this using biskeydump (https://gbatemp.net/threads/biskeyd...c-decryption-real-time-mounting-tools.502434/)

Then run from command line:
Code:
python FVI.py [-b=/path/to/biskeyfile] <dumpfile>

 biskeyfile must contain the following lines:
   BIS Key 2 (crypt): <32-digit hex key>
   BIS Key 2 (tweak): <32-digit hex key>
  omit -b if System partition already decrypted (eg. dumped with HacDiskMount)

 dumpfile must be NAND dump (eg. Hekate rawnand.bin dump) or System partition

Run examples:
View attachment 140232

View attachment 140233

I tested this on Windows 10 with Anaconda Python 3.6.5 and Ubuntu 16.04 LTS with Python 3.5.2. I hope you find it useful :)
This is useful, but I do have one feature request: an option to auto-rename files in a folder with serial number and firmware.
 
there are many ways. when a new firmware version comes out i get hactoolnet to output a list of which file name is which title ID and i end up referencing it a lot
 
I am having no luck. Combed through this thread but keep getting the following message.
 

Attachments

  • help please.JPG
    help please.JPG
    49 KB · Views: 236
I installed everything but it won't let me check the files because it cannot find FVI.py. "No such file or directory found". I looked through all the responses in this thread and can't seem to find an answer. What do I do now? I'm on Windows, thanks in advance.
 
Last edited by istovi,
Python and command line can be difficult for unfamiliar users, so if possible, I would recommend the wonderful NxNandManager tool, which among other things can list the firmware version of a NAND backup.


Have more than one NAND dump? Forgot to rename or label them?
Good news! Now you can quickly find out what firmware version a given backup contains.

Download:
Firmware Version Inspector - by shchmue on Github

Usage:
Install Python 3 and pycryptodome. In command prompt, type:
Code:
pip install pycryptodome

If this is an encrypted backup like Hekate makes (ie. you haven't dumped a decrypted System partition via HacDiskMount), you need to provide your console-specific BIS key 2. Dump this using biskeydump (https://gbatemp.net/threads/biskeyd...c-decryption-real-time-mounting-tools.502434/)

Then run from command line:
Code:
python FVI.py [-b=/path/to/biskeyfile] <dumpfile>

 biskeyfile must contain the following lines:
   BIS Key 2 (crypt): <32-digit hex key>
   BIS Key 2 (tweak): <32-digit hex key>
  omit -b if System partition already decrypted (eg. dumped with HacDiskMount)

 dumpfile must be NAND dump (eg. Hekate rawnand.bin dump) or System partition

Run examples:
View attachment 140232

View attachment 140233

I tested this on Windows 10 with Anaconda Python 3.6.5 and Ubuntu 16.04 LTS with Python 3.5.2. I hope you find it useful :)
Having an issue.
pythonscriptscrn.png

im using python 3.6.5, Windows x86 Executable from Python site. I'm not using Admin Cmd Prompt. FVI file is in a FVI folder on my desktop, and the paths for the other files are also on my desktop. I am not very savvy with cmd and terminal. Hope this is enough info to help.
 
I dumped with biskeydump (v9) on 10.1 and tried

Code:
python FVI.py -b=biskeydump.txt rawnand.bin

Code:
Firmware Version Inspector - by shchmue
Dump is full EMMC raw NAND.
Loaded BIS keys.
Found FAT boot sector!
Scanning root for /Contents/...
/Contents/ found at cluster 0x3 address 0x148000
Scanning root for /save/...
/save/ found at cluster 0x3f01 address 0xfd40000
Scanning /save/ for System Savegame 8000000000000060...
Success! Found /save/8000000000000060.
Scanning /Contents/ for /registered/...
/registered/ found at cluster 0x5 address 0x150000
Scanning FAT for fragmentation...
/registered/ clusters:  ['0x5', '0x2be2', '0x14daa', '0x192ae']
Buffered 4 /registered/ clusters. Reading filenames...
Success! Found 197 NCA filenames.
System Version Title not found!

Does it require a 10.1 update to identify?

I was unsure if I updated to 10.1 before making a backup (though me and friend is pretty sure we did)..

I would like to verify so I am sure I can recover my nand backup safely.. Is there any risk to bricking if I attempt to restore and I remembered wrongly about updating first? Or can I simply backup again and restore that in case?
 
yeah i need to update FVI for the new versions. and there’s no brick risk, if you’re on an unpatched console and you restore a backup even if there’s a fuse mismatch you can still boot CFW
 
yeah i need to update FVI for the new versions. and there’s no brick risk, if you’re on an unpatched console and you restore a backup even if there’s a fuse mismatch you can still boot CFW
Here is an updated firmware_titles.db that supports up to 10.2.0
 

Attachments

Hi, does this still work? Because I'm getting an "Unrecognized file size" error, which I'm assuming it's because my backups are split in 2GB files.

1748786669470.png


Update: Merged the files into a single one with
Code:
copy /b rawnand.bin.* rawnand.bin

(I know that the last supported FW is 16.0.2, but it happens to be the one I'm currently on and all my backups are older)
 
Last edited by DrDoctor,

Site & Scene News

Popular threads in this forum