CTRNAND contains newer title versions on downgraded O3DS

Discussion in '3DS - Homebrew Development and Emulators' started by TBreaker, Jan 16, 2016.

  1. TBreaker
    OP

    TBreaker Member

    Newcomer
    49
    4
    Dec 4, 2012
    Gambia, The
    Hi guys,

    I recently used decrypt9 and dumped my CTRNAND.bin. I opened that in a Hexeditor and searched for the title IDs of the system files and then looked up the version.

    Now there's a thing that I'm wondering about if this is really supposed to be correct.
    I found system titles with their corresponding version numbers for firmware 9.2, but the same system titles are also in there with the corresponding version numbers for older and even newer firmwares.

    I can understand that older system titles might be in there, but is it really correct that the newer system titles are still there? I guess they shouldn't be there anymore after downgrading?

    Any help/clarification about this matter is much appreciated!
     
  2. TuxSH

    TuxSH GBAtemp Advanced Fan

    Member
    612
    994
    Oct 19, 2015
    France
    Downgrading = removing newer version titles to install their old versions.

    It's 100% normal that titles that didn't need to be downgraded are still there.
     
    Mrrraou and Syphurith like this.
  3. Syphurith

    Syphurith Beginner

    Member
    641
    222
    Mar 8, 2013
    Switzerland
    Xi'an, Shaanxi Province
    Sysupdater just replace the newer titles with what you offered to it. So no such auto-clean. If you want, you can make a feature to read a text file, and remove those if there is.
    Not too hard if you know how to code in C and code reading, since the necessary ARM11 calls for such is already done (at least) once in current sysupdater source code.
    EDIT:: Forgot some tips[/s] Once that is done, find those titleIDs should not be there, and write the list. You may run with even no CIA then.
    Exactly the reason. Thanks for your effort on memchunkhax2 with sysupdater.
     
    Last edited by Syphurith, Jan 16, 2016
    Mrrraou and TuxSH like this.
  4. TBreaker
    OP

    TBreaker Member

    Newcomer
    49
    4
    Dec 4, 2012
    Gambia, The
    Well, it's not that they didn't need to be downgraded since the latest version of NATIVE_FIRM is also still there.

    At offset 0x4B8378C I found the title ID of NATIVE_FIRM (0004013800000002) with version number v17120 from 9.0 update, but at offset 0x924F78C is NATIVE_FIRM but with version number v22313 from 10.2 update.
    The same goes for the Internet Browser and other titles.
    So they are just useless leftovers that don't affect anything?

    Even though I have some knowledge in C, I better won't do anything that modifies the NAND. :unsure:
     
  5. Syphurith

    Syphurith Beginner

    Member
    641
    222
    Mar 8, 2013
    Switzerland
    Xi'an, Shaanxi Province
    DId you checked the NAND FIRM SECTIONs? That should be all from a same NATIVE_FIRM version. Or else, something is going mad.
    BTW it seems not the FIRMs.. Cause FIRM sections only contains the .FIRM that included in NATIVE_FIRM, not itself.
    If you are saying about the Folder of NATIVE_FIRM, there should be only one .CMD that working. If so that's just some left over.
    Yeah i haven't had time to post document about CMD type (not know much about that). But there should always be only one .CMD, indicating it which to load/use.
     
  6. TBreaker
    OP

    TBreaker Member

    Newcomer
    49
    4
    Dec 4, 2012
    Gambia, The
    Sorry for the late reply didn't have enough time this week.
    Maybe this is a noobish question but what folder are you talking about?
    I just looked into CTRNAND.bin with a hexeditor. Is there an easier way to do so?

    Or is there even a better way to find out all version numbers of my currently installed system titles?
     
  7. zoogie

    zoogie simple pimp tool

    Member
    6,510
    8,386
    Nov 30, 2014
    United States
    You're looking for titles on the raw nand binary which means you'll not only find installed titles, but ones that were marked for deletion and not presently overwritten.

    That's how file systems usually work. Once deleted, the record of that file is removed, but it is usually not replaced until it's space is needed by a new file.

    The correct way to find installed files is mounting ctrnand in something like osfmount and opening the filesystem up. Otherwise, use the proper 3ds AM functions to get the installed nand title list and their versions.
    ex. https://github.com/svanheulen/downgrade_check
     
    Last edited by zoogie, Jan 21, 2016
    Syphurith, TBreaker and ihaveamac like this.