Tutorial Android Mod IDE - Testing phase 3 v0.90 RC1 Build

s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#1
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...

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
min 4GB ram
Java 8 JRE or JDK link:
You do not have permission to view link Log in or register now.

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!

Newest Release
You need to hit the "Like" button or Reply to this Thread it in order to unlock this hidden content. Stuck? Watch this video.
Previous releases
You need to hit the "Like" button or Reply to this Thread it in order to unlock this hidden content. Stuck? Watch this video.
For screenshots, please visit the original disscussion thread: viewtopic.php?f=68&t=5079
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

Last edited:
s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#2
Re: Android Mod IDE - Testing phase 1 v0.3 Alpha Build

Android ModIDE

CHANGELOG
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! :cool: 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 :)

0.3 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: standard workaround of wrapping path in quotes works)
  • 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
 
Last edited:
s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#3
Re: Android Mod IDE - Testing phase 1 v0.3 Alpha Build

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
 
s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#4
Re: Android Mod IDE - Testing phase 1 v0.4 Alpha Build

Attention: anyone having installation errors, there seems to be a bug related to the filesystem path in the program, if you notice any trouble installing, or the program goes blank and stays that way even after reloading/restarting, I have corrected this bug in a nightly build, not releasing publicly because theres many new features I'm working on that are half done, so don't want to put an update where half the things are broke :D
If interested and you experience that bug, post here and I will pm a link for the nightly as long as you understand some things in it will not work (all previous function still does however)

Thanks @Kryo for noticing the bug and getting the details I needed to fix :)
 
s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#5
Re: Android Mod IDE - Testing phase 1 v0.4 Alpha Build

A new bug was discovered yesterday regarding the filesystem tree causing an Out of Memory exception requiring a force shutdown of the program to continue. Im working on it as i write this but the easiest way to avoid it is by not opening files too populated by folders/subfolders (ie dont open a file located in C:\ or ./ root for example, staring a project from a file there is ok so long as you use default save location or a deep enough folder)
 
kryo
Offline

kryo

Savage Lv. 6
Elite Mod Squad ⭐
EXP
Country Flags (Permanent) Reset Views Profile BBcodes Lottery
SB Cash
9,487
Device
s5 android 4.2.2, nox 5 emulator
#6
Re: Android Mod IDE - Testing phase 1 v0.4 Alpha Build

0.46 is looking good. cant wait for dll editing
 
s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#7
Re: Android Mod IDE - Testing phase 1 v0.4 Alpha Build

Thanks :D glad to hear the new build is working overall, and as soon as i fix this file tree bug (OOM errors ill always consider critical priority, as they can effect not just the program but overall system slowdown as well), the dll reflection is the highest priority, then getting the git repo as FTM APK editor that does both smali and NET reflection :D
 
kryo
Offline

kryo

Savage Lv. 6
Elite Mod Squad ⭐
EXP
Country Flags (Permanent) Reset Views Profile BBcodes Lottery
SB Cash
9,487
Device
s5 android 4.2.2, nox 5 emulator
#8
Re: Android Mod IDE - Testing phase 1 v0.4 Alpha Build

Anynews? Still no skype? Got some ideas what could be added but not sure how hard they will be.
 
s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#9
Re: Android Mod IDE - Testing phase 1 v0.4 Alpha Build

dammit ill add it today lol sorry

anyways, Since I've fallen behind in schedule (to be fair, building a lexer/parser for CIL is hard fkn work :D haven't even got close to working on the decompiler for pseudocode yet) I wanted to share the first pics of partially working IL disassembler for ModIDE. This is a VERY early prototype and most likely will change looks quite a bit, but its coming along, finally lol
 

Attachments

kryo
Offline

kryo

Savage Lv. 6
Elite Mod Squad ⭐
EXP
Country Flags (Permanent) Reset Views Profile BBcodes Lottery
SB Cash
9,487
Device
s5 android 4.2.2, nox 5 emulator
#10
Re: Android Mod IDE - Testing phase 1 v0.4 Alpha Build

i cant wait to chat on skype. screen looks good.
 
s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#11
Re: Android Mod IDE - Testing phase 1 v0.4 Alpha Build

Ok this is taking a LOT longer than expected, and given the reports I've received about failed installs I'm going to have to rush the next update, so in the next couple days expect to see 0.52.1 out, included will be a lot of new function, however it will not all be working properly
-PE header browser is about 90% complete, its missing the IAT info and currently only for view, edits do not work
-dll files will disassemble, and you can view IL code, however editing is NOT functional, itll save but won't alter the dll library which currently can only be edited by open normally then using hex editor, so if you're hardcore it's possible lol
-a request was made that i thought would be cool, and easy to add so if i have time, you will be able to add custom toast messages automatically! simply store your toast in the option provided and it'll automatically find and insert your toast during build :D
look for this update soon!

special thanks to kryo for the toast suggestion
 
johnhern
Offline

johnhern

Modding Since 2017
Elite Mod Squad ⭐
eBook Releaser
Musicizer!
SB Cash
24,832
Gender
Male
Device
LG X Charge Android 7.0 Non Rooted
Country
Nicaragua
#13
I think the all around idea of this is well above the bar. The end goal (if there ever is a real end regarding the future) is awesome.

Thanks for putting in all the hard work and time into it.
 
s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#15
Current update: unity dll disassembly about 40% ready, with the Hierarchy tree about 90% done, heres the view of the tree, disregard main window it will change a LOT for dll editing
 
kryo
Offline

kryo

Savage Lv. 6
Elite Mod Squad ⭐
EXP
Country Flags (Permanent) Reset Views Profile BBcodes Lottery
SB Cash
9,487
Device
s5 android 4.2.2, nox 5 emulator
#18
Do you have link to nightly build folder. G drive is stable release init?
 
s810car
Offline

s810car

APK Fanatic Lv. 5
EXP
SB Cash
1,598
Device
LG Stylo
#19
Do you have link to nightly build folder. G drive is stable release init?
since i haven't set up my git yet, my "nightly build" as i call it is actually stored on my computer :D ill upload the newest copy soon as i can today, itll have a lot of stuff unfinished obv though so don't expect much on the disassembler yet, for instance the tree only shows the metadata link (the node), it doesn't go anywhere yet, so no info outside of the text in the tree. working on the UI part, once the objects in that display are available (ie done and stable), they're what i feed the metadata linked info into, then you'll see some usability :). other things started to get finished as well (saved state for ui skin and opened tabs, etc) so just be aware lots of changes i haven't laid out yet. ill hit ya back later, thanks!