Hacking (4.x only) CIA CFW Complete Guide

  • Thread starter Thread starter palantine
  • Start date Start date
  • Views Views 550,032
  • Replies Replies 2,082
  • Likes Likes 29
No, not quite. You compile to cxi, inject header, and then package the completed work as a cia.

Here's an example from my scripts, based on those used in the ExInjector thread. Mind you, theirs are entirely automated, so I really do advise on trying theirs out if you're a bit lost. This example also packs a manual with the name "manual.cfa" into the cia file.

Code:
cd workdir..\makerom -f cxi -rsf cia.rsf -target t -desc app:4 -v -icon icon.bin -banner banner.bin -exefslogo -code code.bin -exheader decrypted_exheader.bin -romfs decrypted_romfs.bin -o ConvertMe.cxi
cd workdir..\exinjector -rom ConvertMe.CXI -exheader decrypted_exheader.bin -sd
cd workdir..\makerom -f cia -target t -content ConvertMe.CXI:0:0 -content manual.cfa -o Install.cia
What's the -sd switch for?
 
What does that mean? Isn't that what the cia files are already doing?
There's a setting in the header that says whether it's an SD app or not, without that set it might install but it won't run.
And why doesn't he have a "-logo logo.bin" switch in his command?
Because he uses -exefslogo
 
No, not quite. You compile to cxi, inject header, and then package the completed work as a cia.

Here's an example from my scripts, based on those used in the ExInjector thread. Mind you, theirs are entirely automated, so I really do advise on trying theirs out if you're a bit lost. This example also packs a manual with the name "manual.cfa" into the cia file.

Code:
cd workdir..\makerom -f cxi -rsf cia.rsf -target t -desc app:4 -v -icon icon.bin -banner banner.bin -exefslogo -code code.bin -exheader decrypted_exheader.bin -romfs decrypted_romfs.bin -o ConvertMe.cxi
cd workdir..\exinjector -rom ConvertMe.CXI -exheader decrypted_exheader.bin -sd
cd workdir..\makerom -f cia -target t -content ConvertMe.CXI:0:0 -content manual.cfa -o Install.cia

Do you know how to inject the exheader manually? I'm having trouble with the ExInjector...
 
Do you know how to inject the exheader manually? I'm having trouble with the ExInjector...
Did you extract your ExHeader with 3DSExplorer? That only grabs the main regions of it, which used to be adequate for our purposes. You'll need to extract it again with ctrtool, as you actually need the complete exheader to properly inject it back into the newly built CIA.

As I said, you should look in the other thread for more concrete details of how all this works. Here's an example script for extracting the exheader though, and you will need to decrypt it again with your original exheader xorpad.

Code:
cd workdir..\ctrtool -p --exheader=exheader.bin rom.3ds
pause
 
Did you extract your ExHeader with 3DSExplorer? That only grabs the main regions of it, which used to be adequate for our purposes. You'll need to extract it again with ctrtool, as you actually need the complete exheader to properly inject it back into the newly built CIA.

As I said, you should look in the other thread for more concrete details of how all this works. Here's an example script for extracting the exheader though, and you will need to decrypt it again with your original exheader xorpad.

Code:
cd workdir..\ctrtool -p --exheader=exheader.bin rom.3ds
pause
No, how to inject the exheader into the cxi manually.

And why can't you use a rsf file for Fire Emblem see as it's only 4.X fimware verion?
 
No, how to inject the exheader into the cxi manually.

And why can't you use a rsf file for Fire Emblem see as it's only 4.X fimware verion?
I haven't looked into how it's done yet at a low level, no time, just use ExInjector and you'll be all set.
As for the issue, you see, there's tonnes of special data stored in the ExHeader that tells the 3DS kernel what that game needs to function, what levels of access it needs, and what external dependencies it requires to start, including firmware versions. As we never figured out all of the correct settings to make it start, we can't use a self-build ExHeader to make it run just yet. You see, RSF files are, put simply, the instructions for building a new ExHeader for the game. Without them being built correctly, the game will not run at all. We inject the original ExHeaders into the ROMs to save us the hassle of painstakingly rebuilding them from scratch. Then, we just patch those ExHeaders with any additional settings we require to make it work in our desired fashion.
 
I'm kind of confused about reloading the cfw (by holding L and opening Nintendo Ds Profile) and nothing I've read is clear about it. Does this need to be done every time I reboot? I read somewhere that once the devmenu or bigbluemenu cia is installed you can just load new CIAs through that, but would I need to relaunch the cfw to do that?
I guess I'm confused as to what it is that requires an "L" button reload of the cfw.
 
I'm kind of confused about reloading the cfw (by holding L and opening Nintendo Ds Profile) and nothing I've read is clear about it. Does this need to be done every time I reboot? I read somewhere that once the devmenu or bigbluemenu cia is installed you can just load new CIAs through that, but would I need to relaunch the cfw to do that?
I guess I'm confused as to what it is that requires an "L" button reload of the cfw.

After your 3ds is rebooted, it goes back to sysnand.
So you have to enter again into the cfw
 
I'm kind of confused about reloading the cfw (by holding L and opening Nintendo Ds Profile) and nothing I've read is clear about it. Does this need to be done every time I reboot? I read somewhere that once the devmenu or bigbluemenu cia is installed you can just load new CIAs through that, but would I need to relaunch the cfw to do that?
I guess I'm confused as to what it is that requires an "L" button reload of the cfw.
But not by holding L again. That is only necessary for installing the devmenu over your computer.
 
I'm kind of confused about reloading the cfw (by holding L and opening Nintendo Ds Profile) and nothing I've read is clear about it. Does this need to be done every time I reboot? I read somewhere that once the devmenu or bigbluemenu cia is installed you can just load new CIAs through that, but would I need to relaunch the cfw to do that?


I guess I'm confused as to what it is that requires an "L" button reload of the cfw.

This is something I was struggling since I installed the CFW and maybe I forgot to read the first time I installed the CFW, but if you boot into CFW with L held down, you'll enter in "client" mode (let's call it like that for now hehe) to recieve devMenu via internet, this is only neccesary the first time you install devMenu, after that, you can just boot with the DS Profile option without holding anything.

I've noticed the CFW is really unstable on "client" mode, some games won't boot (that happened with me and Luigi's Mansion), you'll crash randomly while making carpets or installing .cia files on devMenu. I decided to boot without holding L, and everything ran perfectly!

Maybe I'm just unlucky heh, but hey, knowing is half the battle!
 
Can I install other CIAs via the network in normal mode once devmenu or BBB is installed, or must I boot into "client-mode" again? Installing via wifi sounds like the best option when running low on space.
 
I finally installed the Devmenu. Thanks everyone for the help. Now i want to install .cia-files, should i just put them in the root of my sd and start installing them?
If i install the bigbluemenu, will my devmenu be better?
 
  • Like
Reactions: drwhojan
I finally installed the Devmenu. Thanks everyone for the help. Now i want to install .cia-files, should i just put them in the root of my sd and start installing them?
If i install the bigbluemenu, will my devmenu be better?


That's what I would like to know, if you extract the .cia file from SD card to SD card , are wireless connection .

Was not clear ?.
 
Someone know how to backup the cfw emunand ? (if I want to put it on a bigger sd card)

extract the cfw nand using emuNAND tool, with your new sdcard set it up so you can format emuNAND in gateway menu. connect new sdcard back to pc and inject saved cfw nand with emuNAND tool. it should work just don't format your current sdcard just in case............................sudeki300
 

Site & Scene News

Popular threads in this forum