appdbg
Introduction: make it possible to run android dex file in original Java Virtual Machine.
Tags:
make it possible to run android dex file in original Java Virtual Machine.
Features
- change every class before it will be loaded
- change every item of the class after it was loaded
- hook java method
- implement native method by yourself or unidbg...
- provide fake source line level debug ability powered by fernflower(https://github.com/fesh0r/fernflower)!!!
Start
powered by patch-jvm we do not need to patch jvm by myself anymore!
- if it has any problem, please see PatchJDK.md
open the project with IDEA
run test suites in testSuites

Build test app
include test-app module in settings.gradle
include ':test-app'
Publish to mavenLocal
- run command
./gradlew publishToMavenLocal implementation "jmp0.appdbg:core:1.0-SNAPSHOT"
Implement native method with unidbg
auto implement reflection method by appdbg
- invoke method

- native code source


- result

source line level debug
- implement IApkConfig and set generateJarFile and jarWithDebugInfo true,run code,and the jar file will be generated in libs/tempLibs dir

- sync gradle file,and IDEA will index it

- select one file you want to debug,and click the label.

- chose the source files generated at temp/apkName/decompile_source, click open button.

- set IApkConfig forceDecompile false,and set source line breakpoint.

- run code with debug mode!!!

About
it's hard for me to implement all Android runtime well,if you can help me to make this project better,Thanks for your contribution.
