ihaveamac / ninfs

FUSE filesystem Python scripts for Nintendo console files
MIT License
438 stars 18 forks source link

Doesn't work with titlekey-decrypted CDN contents. #19

Closed mariomadproductions closed 6 years ago

mariomadproductions commented 6 years ago

You can mount each content file (00000000[.app] etc) using the NCCH method, but I'm not sure if that is optimal, especially if it has lots of content files, like DLC does.

ihaveamac commented 6 years ago

It reads the encrypted bit per-content in the tmd, and assumes it is encrypted if enabled. So the contents are likely still marked as encrypted.

mariomadproductions commented 6 years ago

Oh. So TMDs on 3DS consoles differ from CDN in that they have the encryption bit disabled?

ihaveamac commented 6 years ago

tmds stored on the console are not modified from how they were given at install time.

If you are trying to mount installed contents, consider the titledir one. It expects filenames to line up with what installed contents are (<hexid>.app, <hexid>.tmd), but it doesn't use the encryption bit here.

mariomadproductions commented 6 years ago

What were you saying about the tmd encryption bit then?

Are the tmds "given at install time" the same as the tmds "on the CDN"?

ihaveamac commented 6 years ago

The contents of the tmd are not changed from what was given at install (cia, cdn, etc.) So the encryption bit will still be on, but unused here because it's already installed.

ihaveamac commented 6 years ago

This isn't really an issue with fuse-3ds itself, it's encryption bits not set properly in the tmd. Consider using the titledir mount if it was from installed contents. Or mount individual ones if it's not dlc.

mariomadproductions commented 6 years ago

I'll just mount individual ones. Its content downloaded+decrypted using nustool.