[Release] FBI - Open source CIA installer

Discussion in '3DS - Homebrew Development and Emulators' started by Steveice10, Apr 11, 2015.

  1. Steveice10
    OP

    Steveice10 GBAtemp Maniac

    Member
    1,102
    1,655
    Jul 19, 2009
    United States
    FBI is an open source file and title manager.

    Features
    • Available as a CIA, 3DS, and 3DSX. To use the 3DSX version, either ensure the required services are accessible, such as through Luma3DS's access patching option, or run a kernel exploit beforehand, such as fasthax or waithax.
    • Browse and modify SD, TWL photos, TWL sounds, save data, and ext save data.
    • Browse and modify CTR NAND, TWL NAND, and system save data, and dump the raw NAND image to "sdmc:/NAND.bin". (CIA/3DS ONLY)
    • Delete, copy, and paste files and directories.
    • Export, import, and delete save data secure values.
    • Launch titles installed to the system. (CIA/3DS ONLY)
    • Install and uninstall titles from a file system, over HTTP with a URL or QR code, or from the CDN if you have the title's ticket installed.
    • Install and uninstall tickets from a file system or over HTTP with a URL or QR code.
    • Browse and delete pending titles (downloaded updates, in-progress eShop titles, etc).
    • Customize appearance by placing replacements for RomFS resources in "sdmc:/fbi/theme/".
    servefiles

    servefiles is a Python script included with FBI for serving CIA files via a local HTTP server and sending the URLs to FBI over the network. See the included "README.md" file for more information.

    For Android users, a modified version of servefiles made by DMSalesman can be found here.

    Screenshot(s)
    Warning: Spoilers inside!
    Downloads

    FBI
    Binaries: https://github.com/Steveice10/FBI/releases
    Source: https://github.com/Steveice10/FBI

    FAQ

    Q: Can I install any CIA I want?
    A: In order to install unsigned/custom CIAs, you must be running a CFW with signature patches. Otherwise, you can only install legitimate, signed CIAs.


    Q: FBI is failing to boot or has issues as a 3DSX!
    A: On Luma3DS 8.0 and above, if you are experiencing issues accessing the NAND using the 3DSX version, enable ARM9 access patching in the Luma3DS settings. On lower versions of Luma3DS or in other environments altogether, in order to use the 3DSX version, either ensure the required services are accessible, such as through Luma3DS's access patching option, or run a kernel exploit beforehand, such as fasthax or waithax.

     
    Last edited by Steveice10, Jul 1, 2017
    Keizel, LeoIeiri, hurrz and 85 others like this.


  2. Zidapi

    Zidapi GBAtemp Psycho!

    Member
    3,024
    1,805
    Dec 1, 2002
    Awesome! It's about time this got a release thread. In my opinion it's superior to BRM.
     
    TheKawaiiDesu, Margen67 and zoogie like this.
  3. AquaX101

    AquaX101 GBAtemp Advanced Fan

    Member
    714
    165
    Apr 15, 2014
    United States
    Somewhere
    Awesome!
     
    Margen67 likes this.
  4. Xenon Hacks

    Xenon Hacks GBAtemp Guru

    Member
    7,053
    3,370
    Nov 13, 2014
    United States
    Woah Woah Woah before I get run over by the hype train what are the requirements firmware wise? And can this be used to lets say install Clean CIA's to sysnand since there globally signed?
     
    Margen67 likes this.
  5. Death78793

    Death78793 What is this, a first person shooter?

    Member
    251
    156
    Jan 16, 2015
    Nice work! It's cool to see what's been popping up recently. I'm not that far as to ask for things directly but I sure love to snoop around looking for binaries xD
    It's fun to see people working on code, makes me excited to jump in, unfortunately my programming language is rusty, lol
    Maybe in a few years I might be actually useful xD
     
  6. Steveice10
    OP

    Steveice10 GBAtemp Maniac

    Member
    1,102
    1,655
    Jul 19, 2009
    United States

    The requirements are the same as always, basically any firmware capable of running unsigned code, whether it be through Ninjhax on 4.x-9.2, Gateway emuNAND, etc. And yes you should be able to install clean CIA files, even on sysNAND if you run it from there.

    On another note, I've put up a download link for Windows, Linux, and Mac OS X builds of sockfile.
     
    Margen67 and Xenon Hacks like this.
  7. DarkFlare69

    DarkFlare69 GBAtemp Psycho!

    Member
    4,683
    2,511
    Dec 8, 2014
    United States
    Ohio
    Wait. If I just have a Cubic Ninja Cartridge, I can use this?
     
  8. Steveice10
    OP

    Steveice10 GBAtemp Maniac

    Member
    1,102
    1,655
    Jul 19, 2009
    United States

    You'll need to patch service access first through some way or another (something like https://github.com/archshift/service-patch, perhaps?), but yes. Note that only properly signed CIAs will work, as Ninjhax does not provide any sort of signature patching.
     
    Alkéryn and Margen67 like this.
  9. AquaX101

    AquaX101 GBAtemp Advanced Fan

    Member
    714
    165
    Apr 15, 2014
    United States
    Somewhere
    Might seem like a dumb question but when you switch to uninstalling nand contents and you're on palantine's cfw, does it by any chance effect the sysnand?
     
  10. Loaffy

    Loaffy GBAtemp Regular

    Member
    136
    45
    Mar 27, 2015
    Canada
    Cool, glad you're officially releasing it now.

    To me the biggest feature is sockfile, but I'm wondering if it would have faster transfer speeds than ctrclient or if it's pretty much the exact same?

    Either way it should be easier than booting into that buggy cfw mode for transferring files over the internet (sometimes it's easier for me to do things that way, plus it's the only way to fill an SD card fully since installing from the SD requires 2x the space).

    Also the built in "press y to find 3DS IP" should be pretty useful for some people, though I already found it pretty easy to look up my 3DS on my router's settings page.

    I can't really think of any features that I would want to be added, so overall this seems like "the .cia installer to end all .cia installers".

    Good work and I look forward to seeing what you do next, whether it's work on your existing projects or something new.

    edit: the only thing I could think of that would be cool to add is a way for sockfile to queue up multiple .cias to install, but I don't know if that's feasible or not.
     
    Margen67 likes this.
  11. DarkFlare69

    DarkFlare69 GBAtemp Psycho!

    Member
    4,683
    2,511
    Dec 8, 2014
    United States
    Ohio
    L
    Probably not
     
  12. Steveice10
    OP

    Steveice10 GBAtemp Maniac

    Member
    1,102
    1,655
    Jul 19, 2009
    United States
    It'll affect whatever NAND is currently running. Palantine CFW redirects NAND to the SD card, so FBI will use the redirected NAND, while PBT-CFW, for example, uses sysNAND, so FBI would use sysNAND.


    Not sure whether its faster than ctrclient or not. Large CIA files may take a while, but small ones should be pretty quick.

    Also, just so it's clear, pressing Y is also to open it up for network installation, not just to show the IP. You won't be able to install over the network without being on the IP screen.
     
  13. Loaffy

    Loaffy GBAtemp Regular

    Member
    136
    45
    Mar 27, 2015
    Canada
    I see. I'll test it out in a little while and if it's noticeably faster than ctrclient I'll let you know. And thanks for the tip about needing to press Y to put it in network install mode.
     
  14. zuxicovp

    zuxicovp Advanced Member

    Newcomer
    82
    18
    Jan 25, 2015
    United States
    This is really nice. Glad to see something like this. I'm pretty new at C++, and had some code questions. Why did you not just use "using namspace std;" at the head? I see that you used "std::" but I don't see any benefit of doing that
     
  15. Death78793

    Death78793 What is this, a first person shooter?

    Member
    251
    156
    Jan 16, 2015
    I've been playing around with this and it's brilliant! I haven't gotten anything to install mainly because I just sit there at the screen XD
    I won't be able to install anything due to me not being with my beautiful, trusty college dorm router (went back home only to find out about this) and this router here prevents my computer from remotely accessing my console, and besides, I have no means to up the privileges on my console (running via ninjhax), but I might try my hand at checking some other stuff while I keep looking at this :)
    I'll let you know if I find any bugs, too :D
     
  16. Loaffy

    Loaffy GBAtemp Regular

    Member
    136
    45
    Mar 27, 2015
    Canada
    No matter what I try sockfile gives a "failed to connect" error.

    I highly doubt there is any issue with my network setup, as I can use ctrclient just fine.

    I have my 3DS in "receive an app over the network mode" and it says it is "waiting for peer to connect...".

    I am using windows, with the windows x86-64 sockfile.exe uploaded "1 hr ago" according to dropbox.

    running sockfile with run.bat containing "sockfile 192.186.1.66 test.cia" (without the quotations).

    edit: in case it is relevant, I'm using palantine-cfw in regular mode on a 4.5.0-10U rednand original 3DS. Also using windows 8.1. Also tested with palantine-cfw in the "hold L button" mode that is used for ctrclient, still the same result.
     
  17. Steveice10
    OP

    Steveice10 GBAtemp Maniac

    Member
    1,102
    1,655
    Jul 19, 2009
    United States

    Eh, I like to be more concise, rather than blanket using all of std. It's a matter of preference.


    Can you give the exact error message sockfile gave you? There should be an error number after "Failed to connect".

    EDIT: Actually, not a number, but an error description string.
     
  18. Loaffy

    Loaffy GBAtemp Regular

    Member
    136
    45
    Mar 27, 2015
    Canada
    Pretty hard to read it because the cmd window closes immediately when it puts out the error. But I'll try to get it.

    Ah, thanks for the tips. Will try that in a few minutes, just making some food.
     
  19. Steveice10
    OP

    Steveice10 GBAtemp Maniac

    Member
    1,102
    1,655
    Jul 19, 2009
    United States

    You can just open a cmd window manually and run the program from there. You could also insert a pause after the command.
     
  20. shinyquagsire23

    shinyquagsire23 SALT/Sm4sh Leak Guy

    Member
    1,962
    3,231
    Nov 18, 2012
    United States
    Las Vegas
    Nice work, probably the best open-source cia installer I've used to date. Way less buggy than BRM.