Question/Idea: Levels of Access

Discussion in '3DS - Homebrew Development and Emulators' started by KeroseneZanchu, Aug 18, 2015.

  1. KeroseneZanchu
    OP

    KeroseneZanchu Member

    Newcomer
    19
    8
    Oct 12, 2014
    United States
    So with IronHax and TubeHax out, I've been seeing a lot of threads pop up about it's capabilities. Correct me on anything I get wrong, because I have little to no idea on how this works.

    Here's the stuff I DO know:

    - According to @WateredFire19 :
    -- IronHax has certain levels of AM service
    -- There are multiple levels of AM service
    -- Installing CIAs (I have a general idea what those are, but if someone could elaborate, then that would be great) is above IronHax's level

    - According to @BobDoleOwndU :
    -- Spider works by editing RAM, not savegame data.
    -- RAM for a game requires you to be playing the game
    -- The Homebrew Launcher can't be run while playing the game
    -- Therefore, the Homebrew Laucher can't edit RAM like Spider
    -- The only other option would to edit the save by decrypting, editing, and encrypting it.
    -- 'In theory' it could work, but someone would have to find out how to make a homebrew version of a SaveDataFiler

    - According to @shinyquagsire23 :
    -- It is also possible with the new 'XML app overrides' (not sure what those are, if someone who comments here could explain, that would be great)

    - What I've seen around (not necessarily a single person)
    -- extdata is editable
    -- Examples of extdata are Themes and Play Coins (maybe others, those are the ones I know of)

    NOTE: I have referenced these people based on stuff they have said and without their consent. If I have misinterpreted anything they have said, or if they would like not to be referenced, they can come forward at any time and say so.

    Now for my question. What, exactly, are the levels of access that exist, which levels of access are available, through what methods can we achieve them, and what levels of access do we need in order to edit/install certain things (.cia's, save data, dlc, other things)?

    I would like to clarify that I know very little about the Homebrew scheme, and the only way I can contribute is by asking questions that can spur ideas, problem solving (maybe), and organizing. I don't know pretty much any coding, it's hard for me to grasp a lot of these ideas unless they're dumbed down to high-elementary or low-junior-high level, and I don't really have the equipment or money to experiment. I'm just hoping someone could help me out on this question, and give me a few tips on things I may/should need to know in order to comprehend homebrew talk higher than 'Download this, run this so it installs that, then use that to run your homebrew'
     
  2. V3NUS_M1NER

    V3NUS_M1NER GBAtemp Fan

    Member
    391
    136
    Nov 27, 2014
    United States
    Hmm....

    I'd really like to know how the IRONHax installer works. That XML file looks *really* interesting!
     
  3. shadowofdarkness

    shadowofdarkness GBAtemp Fan

    Member
    490
    168
    Apr 17, 2007
    Canada
    The Ironhax installer is just a customized version of TDVS. If you don't know TDVS is a soon to be released homebrew version of SaveDataFiler.
     
  4. V3NUS_M1NER

    V3NUS_M1NER GBAtemp Fan

    Member
    391
    136
    Nov 27, 2014
    United States
    Still, interesting!
     
  5. WateredFire19

    WateredFire19 Banned

    Banned
    643
    215
    Aug 23, 2014
    United States
    Wow. I'm honored!

    Dont say TDVS! You'll start the hype train!
     
    Last edited by WateredFire19, Aug 18, 2015
  6. shinyquagsire23

    shinyquagsire23 SALT/Sm4sh Leak Guy

    Member
    1,966
    3,249
    Nov 18, 2012
    United States
    Las Vegas
    The Ironhax installer works by starting Ironfall instead of one of the select service-compatible apps (MSET, dlplay, camera applet, etc). Thus you have access to all the same things Ironfall does, including its save and romfs. You can also do something like this in the XML file to launch and take over whatever is in the game card slot:
    Code:
    <targets selectable="false">
        <title mediatype="2">0</title>
    </targets>
    
    I'm trying to get a PoC on dumping either the save or romfs but it's going slowly.

    EDIT: Never mind that doesn't seem to work with the current version of 3ds_hb_menu, but you could probably fill in a valid TID and have it work.
    EDIT 2: OK now it works, you just have to pull the latest ctrulib+3ds_hb_menu.
     
    Last edited by shinyquagsire23, Aug 18, 2015
    VinsCool likes this.
  7. Duo8

    Duo8 I don't like video games

    Member
    3,443
    1,140
    Jul 16, 2013
    3DS does permission management by checking the exheader of a program before starting the process. The process is then granted access to the services and syscalls listed in the exheader. (there's a bit more to it than this but this is the basic).
     
  8. Rinnegatamante

    Rinnegatamante GBAtemp Psycho!

    Member
    3,127
    3,270
    Nov 24, 2014
    Italy
    Bologna
    Probably the AM "level" people talked about are the different registered services available for AM service. ( http://3dbrew.org/wiki/Application_Manager_Services )

    To install CIAs according to FBI, BGRM and Sunshell codes, you'll have to access to am:u or am:net services.
    Probably TubeHax have access to another AM "sub-service" like am:app or something other.

    EDIT;
    As i said, smealum updated recently ctrulib and added am:sys service to amInit() functionallity. ( https://github.com/smealum/ctrulib/blob/master/libctru/source/services/am.c )
    Then ninjhax launch amInit() so probably service we have access with NH 2.1, IronHax, TubeHax is am:sys.
     
    Last edited by Rinnegatamante, Aug 18, 2015