From 3dbrew
Revision as of 23:09, 4 November 2011 by Lazymarek9614 (talk | contribs)
Jump to navigation Jump to search

Hi its me. Hello :)

I have a 3DS Test Unit, which is capable of installing 3DS/DSi applications compiled in the .cia format from an SD card. So while a way to install applications you create yourself, for normal 3DSs is not possible (i.e. homebrew for 3DS is not yet possible), I am willing to test them for you. If you do make any applications you want me to test, send them in an email with a description of what the application is suppose to do and any instructions. And if you want I can send screenshots and feedback (as detailed as I can) I make about the applications you or others may send. You can send them to "".

Please can you post a link to an uploaded example CIA fie?-Lazymarek9614 13:30, 1 November 2011 (CET)

Do you mean one, that someone has sent me? As I do not have any of my own. By the way I will only post links to .cia files if the sender gives me permission.(I have sent an email asking for permission about 5 minutes ago, so I will or will not give a link depending on their response)--3dsguy 14:21, 1 November 2011 (CET)

Yes, that's exactly what I mean. Is there actually a way that I can create CIA files too?--Lazymarek9614 15:54, 1 November 2011 (CET)

I do not know a way of creating .CIA files. its just that Jl12 asked me as part of a set of questions on my talk page:

  • "Would you be willing to run pre-compiled apps imported through your dev menu on your test unit? [and if so do you have an email to send them to]"

I said of course, and gave some details. Then, to my surprise, someone responded to that yesterday, emailing me 3 apps to test. This person on the other hand does know how to compile apps in the .cia format and appeared to have access to the DSi SDK from what i gathered from the email. I can tell you that they did not work once installed from the .cia file, but they did install which I was impressed about. But like I said before I'm waiting on a reply on whether I can distribute the .cia files he/she sent me.--3dsguy 22:37, 1 November 2011 (CET)

This is the problem many people seem to have with the test units. From what I can tell, the only way to actually run some unsigned application (not created by Nintendo) is by programming it on a development flashcard. --Neimod 01:11, 2 November 2011 (CET)
I'm not sure why you deleted your previous post, but I agree that there are supposed to be different kinds of media (development flashcard, and copying from SD card to internal NAND) that allow running applications on a test unit. However, of these methods, only so far the development flashcard has proven to work with unsigned code. The problem lies in the fact that the unsigned development CXI image uses a dummy RSA private key to create the RSA signature, while official Nintendo development CXI images use the real deal. So as it stands, no developer can create proper CXI images for CIA importing. --Neimod 14:11, 2 November 2011 (CET)
  • I sent him 3 pre-compiled apps at first. ( all by Nintendo ). The first two don't boot because they're not compiled with the libs/firmware running on his test-unit. The 3rd TWL NAND app, doesn't have any icon/banner/title to identify itself after being installed, and although it imports/installs succesfully, it can't be selected or launched from Dev Menu or the Home Menu. Later, I sent him a self-built application ( one not by Nint. ), it installs, boots and runs properly and it just displays some information on the screens; those are the files and images he's linked to here. [the "Hello Galaxy!!!" test-application.]
  • They're not unsigned. Dev/test units use a different set of keys then the retail/production units do.
  • So as it stands, no developer can create proper CXI images for CIA importing. - What. I've sent self-built apps to test to 3dsguy and somebody else who owns a test unit running on a different firmware. They work fine. ( Although it's difficult to line up firmware revisions. )
  • The one that runs was made (compiled/built) using the SDK/firmware revision matching his test-unit.
  • He probably removed the 1st link because I asked him not to post anything with ( even potentially ) copyrighted contents for the sake of not getting this wiki associated with it, the binaries contained code from an e3 demo and the TWL/DSi SDK, we're not doing ourselves any benefit by posting it. The app that runs ( 'Hello Galaxy' ) is a self-compiled application, so it's probably not going to be mistaken for a game or another commercial application. [thus probably safe for wiki.] Jl12
Interesting. That's the first I hear about running self compiled CIA's on a test unit. And yes, sorry I said unsigned application, but I meant signed with the development RSA private key provided by the SDK. The official Nintendo development CIA's do not use keys from the SDK, but rather, a private one that is not distributed. --Neimod 02:17, 4 November 2011 (CET)

I had a look at your previous post, 3dsguy, where you have posted a download link for a CIA file. We don't know much about CIA files so it was interesting to see a file and look into it. The actual data for the app/tmd/cmd files seems to be encrypted (expected that) there's only some plain text like "Root"", "CA00000004" and "Root-CA00000004" to name a few (...) which obviously are paths on the NAND FS. However, I've found out that the name of the files/directories (eg name of the app file:"ad7e6744") which are saved on the SD card after installing the archieve seem to be in the CIA file: Not as plain text, they're actually hex values. I'm not really sure about that. It would be nice if you could post another CIA file, 3dsguy, that we can compare them and find out more about it. Shall we actually create a new page about CIA files?--Lazymarek9614 21:48, 2 November 2011 (CET)

They're certificates.
It's mentioned partially under "Download Play", because it's another use of the same file format. Jl12

Yes I think we should create another page made for .CIA file and move some of this page to its discussion page. But I've got another .cia file and and boots. see [[1]] for everything you may want to know about it and perhaps from this we can start a new page.--3dsguy 07:52, 3 November 2011 (CET)

I think this is more about getting our own code running on the 3DS/CTR then it is about CIA. Jl12

Lazymarek9614, those "paths" are from the cert chain and the ticket. CIA is based on WAD. --Yellows8 16:25, 3 November 2011 (CET)

If you are right and the format is based on WAD, then it might be little endian (unlike WAD). First there's an unknown byte (0x20) and then 4 bytes (0x20000000), which looks a lot like the header size in WAD (which is 'always' 32, in BE). So if this is the same field, I'm pretty sure it's LE. --lesderid 19:45, 3 November 2011 (CET)

@3dsguy - if the situation changes about being able to get any other test-units please let me know, thanks. Jl12

@Jl12: Do you have the Nintendo SDK? If so, can you upload it (correct me if this is a crime)? @--lesderid: "So if this is the same field, I'm pretty sure it's LE." I think it's HE. Is the header size actually 0x20 large? There's always a 0x80 byte after 0x20 bytes...--Lazymarek9614 22:09, 4 November 2011 (CET)