Code Monkey home page Code Monkey logo

3ds-apk-tools's Introduction

apk-tools


Tools for unpacking and repacking APK files found on various 3DS roms


Usage:

  • See apk.py for class definitions and example usage
  • apk-template.bt is an 010 template for apk files that I made to assist in reverse engineering the format

Building a RomFS

See the following forum post for a decent tutorial on how to extract and rebuild a RomFS:


Gundam: The 3D Battle - Project notes and such...

  • We are currently able to exctract textures from apk files, modify them, and then use these modified files using HANS.

  • Since this is a JP cart however, and HANS dosen't support all regions we must do the following to get it to work.

  1. Modify textures and recompress them into apk files, build the new RomFS
    • See Building a RomFS for more details
  2. Start 3DS in gateway mode (requires flash cart)
    • Once in gateway mode, select the Gundam ROM on the flash cart
  3. Enter homebrew launcher (either through homebrew cia or other input vector)
  4. Run HANS and redirect the RomFS transactions to your modified RomFS

This is not very efficient for testing (and requires a flash cart) so we may be able to use the LayerFS plugin capability of the NTR-CFW. Unfortunately though for this particular ROM, the toolkit to build the LaterFS plugin could not find a few of the symbols needed to perform the proper hooking to redirect RomFS access. This is something that we can probably find though. The layerFS build tools are included in this repo as well.

This issue was explained to me through someone on GBATemp (See link below):


LayeredFS

LayeredFS is a plugin for NTR CFW that allows users to swap out individual files on their romFS with ones placed on the SD card, this is really useful for testing mods and would be beneficial to our long term workflow. The only problem is that it does not find all of the proper symbols in our Gundam rom in order to provide the necessary hooks to the CFW. The next step for us (if we want to employ this method) is to find the necessarry symbols for the ROM and enter them manually. The codebase is relatively straightforward and should work on a Linux host (I have modified the build scripts to work with a Linux system as opposed to it's original design which was Windows...


Helpful Links for future work:

3ds-apk-tools's People

Contributors

altr0n avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.