Android Mod IDE - Testing phase 3 v0.9 RC1

s810car

Active Member
190
12/09/16
97
Thread Author
DISCLAIMER: This application is still VERY much in its early stages, and while I have been testing to no end its interaction with files, I CAN NOT GUARANTEE it will not corrupt or otherwise damage a file.
I can not be held responsible for any damage to files, filesystems, or the like (although I have tried to be very thorough in my checks, and will help troubleshoot as much as I can).
USE AT YOUR OWN RISK....and backups are your friends :D

Its been a long road..and I just hit the starting gate lol :)
After almost 6 months, my first major contribution to the Android modding community is finally starting to take shape. Before I get into any details, I would like to express my appreciation for all the support I have received (and hopefully will continue to receive) as I have worked on this project. I hope to see this evolve into a major asset for the modding community as a open source tool available to modify, specialize and keep up with the changing environment of mobile programming. All I ask is for your patience, as for right now it may be not much more than a 'me too' tool to modify apks at the most basic levels, the goals set are not even close to being met, I see this becoming an all encompassing tool that beginners can use to do basic modding, all the way up to experienced modders able to use complex setups only limited by your imagination.

With that, I'm pleased to announce the first (Alpha) release...

splashforum-png.webp

What is Android ModIDE?
ModIDE is a Modding Integrated Development Environment (I know creative name I came up with, don't hate :p ). While initially I can really only describe it as a flashy looking GUI for apktool, its goals are MUCH loftier. Ultimately this will be an AIO tool that'll include a tool to decompile NET dlls, refactoring into C# readable code (think ilspy), modify smali code (complete now), interpret hex code into appropriate machine opcodes (can edit hex now, interpretation in future release), COFF/ELF reader/editor, and much more planned! All this and fully open source as well, this is finally the tool that will do all the function needed, and if not, can be built into it by anyone in the community, as well as being as future proof as you want it to be, many tools have fell into the abandonware pit as either they were too clunky to have enough interest to maintain, or great tools that have gone WAY behind the curve as phones kept advancing, they stood still.


REQUIREMENTS
Portable Jar:
- min 4GB ram
- Java 8 JRE or JDK link: Java SE Runtime Environment 8 - Downloads
Set Java in your environment variables, instructions:

MSI Installer:
- min 4GB ram
- 64bit (if you're one of the <1% people with 32bit Windows still and would like the installer version, post here and I'll build it. Not sure if you have 32 bit? check your C:\ folder for Program files directory, if you have 2 folders and one says (x86) you have 64bit, if only one that only says Program files, you are on 32bit)
- NO separate Java required
- 500mb for the program, plan on devoting ~5gb if you are working on many mods
EDIT - just notice EULA agreement still doesn't show, which is fine anyways, agreement is: use and have fun, its open source :D

any issues running afterwards please post asap, as I have tested as much as possible on my computer, I have not had a second setup to check in different environments

This will save projects in your documents folder by default, however you can place the jar wherever you choose

Now lastly, I want this tool to become the excellent resource I envision it could be, so I request please post any bugs or issues, requests, etc here. Be ruthless i don't care, the point is to make it a tool that's really useful, you won't hurt my feelings :p feel free to make code suggestions as well, next release will have a git repo so pull requests will be possible then but any contributions are welcome anytime.

Thanks again for the support, and hope you find ModIDE to be a valuable tool in your everyday modding projects :)
PS. To authors of the source code I have used in my project: please inform me if I have inappropriately used your source without proper credit, I fully intend to have all credit documented in my project, and any mistakes with be promptly corrected. still kinda new to doing an open source release so I may have not gotten it all right :/ Thanks again!

ModIDE 0.9
ModIDE_0_90.msi

ModIDE 0.8
ModIDE_0_80.msi

ModIDE 0.70d
ModIDE_0_70d.msi


Previous Releases
ModIDE 0.56 Newest Release
Mod IDE - Google Drive


ModIDE version 0.31
ModIDE_3.1.jar

ModIDE version 0.4 installer
ModIDE.msi

For screenshots, please visit the original discussion thread: Need some input about getting in over my head lol
Any questions please post here, I have not had the time to make proper documentation so right now I will keep watch here until that point
 

Attachments

  • splashforum.webp
    splashforum.webp
    5.7 KB · Views: 688
Last edited:
Android ModIDE

This page will be for all the updates i make on this tool I will Update this so please keep an eye here for changes to new and old versions.

CURRENT VERSION: 0.9 Release Candidate
  • Updated .NET dll disassembler, should perform 95% of the functions needed for productive use. Has a fully searchable namespace hierarchy tree, all opcode instructions should be editable along with their values (right now only issue is changing to a larger Opcode instruction, it'll error during save and skip the instruction, will leave a message in the console so you can correct this). Some experience is still required, as while i have made this a LOT more n00b friendly with tool hints on what much of the information means, you still need to understand(have previous knowledge of) the simple things like a 32bit max Integer for ldc.i4 instructions, the .s opcodes allow only an 8 bit value limiting the jump distance of a Br type call, etc. However, you may completely do the edit on ModIDE for the most part, including the disassemble, edit, and update.
  • PE/COFF header has been fully redone to contain all info, as well as allow editing as well. Be VERY careful editing a header as mistakes can and will destroy the file! Always backup before a header edit if possible. Currently only dll files that are being disassembled are fully compatible with it, I will soon follow with any PE file (dll, exe) as well as looking into a Header reader that will parse other types of files and give information on them (example a png/mp3 and display the metadata, etc) This is low priority due to the limited use case but its been started.
  • Many bug fixes, more than I can remember :D However, the important one to mention is all tools should work now regardless of if the program uses its built in JVM or your computers already installed Java (compatibility issue stamped out on that!)


0.56 Alpha 2 (Final before beta i hope)
- Store your custom toast! :sunglasses:this new feature request allows you to save a custom toast message, html enabled, and during build will automatically seek out the proper location and inject the toast! Tested on both unity and non unity games. Note: some html may give limited or unexpected results, so experiment and test before release (colors, text decorations should work good, alignments etc might not fare as well). Also by default it adds "Designed with ModIDE" below your toast if you add one, the option to disable that is where you store it, just uncheck if you wish (I may try to add a shameless plug, but I'm not going to require lol :))
-Install issues should all be fixed, please notify me if you have troubles with either the jar or the windows installer
-Some performance improvements to the file browser tree, along with a primitive search feature started, hit ctrl-f after clicking a node to open it
-The right side bar has been activated and starts to show some useful data regarding file or project. Very early stage at the moment, will soon add quicklinks to important files such as manifest and assembly-csharp, and that will also hold the class hierarchy trees for both java and c# once the decompilers are plugged in properly
-The garbage collector function should work (under free memory in help). This will help if you notice a slowdown building since starting the program. Do NOT overuse, as it actually reduces performance rather than improve if abused (not a program problem thats the nature of garbage collectors)
-PE header Browser about 80% complete, allows view of NET dll headers except for IAT and detail metadata, editing is not enabled (yet)
-Dlls now ask to view like other files (currently the only way to edit is the hex mode from here, hardcore so wait until beta unless a masochist :D ), or you can now disassemble and view the syntax highlighted il opcodes in a similar to ildasm format (editable and savable, but does now reassemble so useless to edit for now)


0.4 Alpha
  • MSI installer version :D includes a java runtime, no longer requires a separate install, as well feels much more integrated as a standard Windows application, builds a shortcut on desktop to its installation path in program files, etc.
  • Several minor L&F options added, mostly aesthetic and specifically for the hex editor
0.31 hotfix
  • Changed the layout to a customizable sizing for the application view panels, mostly to correct an issue where the file tree window would shrink over time becoming unusable. As a plus, all windows can be sized to your preference :)
First release
  • Full feature text editor with 30+ syntax highlighting options and regex search/replace
  • UI Skin customizable with 25+ choices
  • Hex Editor, can convert files back and forth between hex and ASCII
  • Image Resource view
  • Apk extraction, decompiles Manifest to readable text (APKtool)
  • Dissassemble classes.dex to smali (Apktool)
  • Rebuilds jar andextracts .class files for view in JD-GUI or similar (dex2jar, currently no java decompiler until next release so use jar in 3rd party tool)
  • Rebuild and sign apk (Apktool)

KNOWN BUGS
  • Cannot switch to smali syntax, only able to load files as smali
  • Occasionally parser fails to read xml/smali files, if program doesn't freeze you can attempt to load file again (files that fail still succeed 2/3 of time)
  • File tree does not change backgrounds while its text does, makes it impractical to use dark GUI skins
  • Occasional slow down/freezing during file loads from selecting from file tree
  • Currently must choose signing method when starting a project, or edit the project xml, no other way (not a real bug, but will implement an option to change soon
  • Command Line Tools do not allow spaces in filename or file, probable workaround(not tested) is to use unicode ex directory\has\u0020space (EDIT: quote wrapping the path works, thanks for the reminder @BTG)
  • Currently does not allow a custom framework-res, it uses apktool's built in version
  • Possible to multi-load files from recent files location, all other ways correctly load the tab with the file instead of opening twice
  • The File system itself JFC looks like a hoarder threw up in my jar :( thanks eclipse, I'll have to get the jarinjar loader working i guess

  • File Tree causes OOM error if loading from closer to the root drive
  • Installation error is possible, current workaround copy tools folder to Documents/ModIDE/, fixed in 0.46
Planned Updates

  • For 0.4 Release:
  • Clean my file mess up, sigh *Done (thank god)
  • Fix framework implementation to allow own framework-res *Delay until TBD
  • One or more java decompilation tools (JD-GUI, procyon, etc. I haven't finalized my choice) *JD-GUI library in app, integration delay until 0.5
  • Code cleanup, refactoring to prepare for Git release *Mostly finished, Git delayed until 0.5 or beta
  • Fix GUI bugs and plug some memory leaks, retool parser to try to correct the occasional misread current parser does with smali and xml *Delay until TBD
    0.5 and beyond....
  • Full installer with integrated JRE (no need for Java download) *DONE in 0.4 release
  • C# decompiling
  • PE header reader (COFF)
  • refactoring for both C# and smali into readable source trees
  • code suggestion/documentation for CIL/ARM assembly languages
  • Many others, stay tuned!
  • Previous Releases
  • 0.31 hotfix
  • 0.3 initial build
Changes:
- more personalized settings to allow font changes in both the editor and the overall GUI (color, size and style for those with vision issues, syntax highlighting works for all keywords as well regardless of default text color)
- Image viewer has improved to allow scrolling for large image and reads the pixel RGB values
- Much improved error logging to assist in finding bugs
- Ability to save console log
- For those wishing to tinker with the source: a javascript console allowing you to run java methods/functions dynamically at runtime on ModIDE's JVM
- Rewrite of the .NET editing panels and the entire event handling API. Should improve stability and reduce manually entered floating point and other integer errors

Known bugs
- A few of the actions require at least one file has been opened in the application before they will properly work. Fix is in the works
- the Nop instruction is broken at the moment for any instructions it replaces more than 1 byte (IE any instruction larger than the Nop opcode, so all branches, opcodes where a value is expected such as call or ldc.r8, switch command, etc. still works for single instruction short opcodes such as ldloc.1, ldc.i4.0, etc.).

Requires a new install, file is updated in OP. Enjoy!
 
Last edited:
space in command line = use double quotes. that's commonly used to bypass the interpreter from taking over
 
space in command line = use double quotes. that's commonly used to bypass the interpreter from taking over
I know that :p the code uses spaces to split the string into an array it feeds to the process class that takes a csv list of strings, only way I "believe" you can do the spaces is by using the unicode \u0020, or if not the escape backslash with it so it wont parse (\\u0020). unfort until i either change the way the code splits the string, or change the process object, thems the breaks

Edit although, never tried it, maybe the interpreter handles it, wasnt important enough atm :D
 
true, not important atm.
tokenize strings based on double quotes first, then loop and tokenize with space. that way, you always preserve any double quotes.
GL
 
thanks, was checking the part where that was and started with a faulty apk lmao, 20 min of debugging down the drain when i find it had an encoding error :kissingclosed: no big just got to get another test apk, who'da thunk, using the same apk for 2 weeks decoding, building, and back again instead of clean apks would end up corrupting the test subject :D
 
@BTG Ok, checked it out and it does have the quotes able to wrap the spaces :) thanks for reminding me, adjusted the text instruction in the app and added a line in the log to tell me when the command completes (waited forever during debugging lol). Non important so that'll be part of following release
 
it's there for people to try lol the link is above, and just make sure you have the requirements, any issues let me know esp since i have no test info from other computers than mine, I'm sure it needs further tweaking just for better compatibility so more detail the better
 
it's there for people to try lol the link is above, and just make sure you have the requirements, any issues let me know esp since i have no test info from other computers than mine, I'm sure it needs further tweaking just for better compatibility so more detail the better
its done at last? congrats and well done bro :D
 
tyty :D but no its nowhere near done lol, you can decompile an apk, edit the smali or other files (dll only with hex editor for now) and rebuild /resign the apk. I got a LOT more planned for it though, itll be way more detailed when im truly finished, but yep, ready for trial runs :)
 
tyty :D but no its nowhere near done lol, you can decompile an apk, edit the smali or other files (dll only with hex editor for now) and rebuild /resign the apk. I got a LOT more planned for it though, itll be way more detailed when im truly finished, but yep, ready for trial runs :)
oh i thought its done haha
 
na thats why the version number 0.3 (imo about 30% done), along with testing phase 1 and alpha build lol, stil got aways but itll get there, for basics though its usable now hence the early release so i can get testing feedback
 
Gonna have a hotfix in shortly, noticed I was having an issue with the filetree (left side) shrinking when more nodes, etc were added, so implemented the fix I was planning for layout early, a multisplit panel you can grab borders and expand each panel to whatever size you need :D will update to version number 0.31 in a bit

edit:done, new link in one sec
 
Last edited:
tyty :D but no its nowhere near done lol, you can decompile an apk, edit the smali or other files (dll only with hex editor for now) and rebuild /resign the apk. I got a LOT more planned for it though, itll be way more detailed when im truly finished, but yep, ready for trial runs :)
You sounds like indonesian :)
 
I demand the precompiled jar for 0.4.
lol that one is literally just an update to allow standard installation and like two L&F options added (i think hex editor highlight rows/colums toggles, and color changes). The jar alone cannot contain the java runtime that the installer had so tl;dr kinda pointless :p

stay tuned though, next update's got a HUGE amount of work done to get to a beta stage, including more gui improvements, PE/COFF header editing, and (MOST important) the beginning build for Unity editing is moving along ok, probably have version 0.65 in about 6 weeks, and i will be dual releasing that version as jar and msi installer
 
Back
Top Bottom