Legend
What is Legend?
Legend is a Hook framework for Android Development, it allows you to Hook Java methods without ROOT. Even more exciting is that it supports both Dalvik and Art environment!
https://github.com/asLody/legend
1. What is the good
- Programming more efficient
- Dynamic debugging
- HotFix and needn't reboot app
- Fast dump Dex File in the shell
- Software security penetration
- Do some exciting things...
2. How to use
Example 1: Annotation type Hook
@Hook("android.widget.Toast::show") public static void Toast_show(Toast thiz) {
thiz.setText("XXXXXXXXX");
//Call the origin method
HookManager.getDefault().callSuper(thiz);
}
Example 2: Interception of startActivity
@Hook("android.app.Activity::[email protected]") public static void Activity_startActivity(Activity thiz, Intent intent) {
if (!ALLOW_LAUNCH_ACTIVITY) {
Toast.makeText(thiz, "I am sorry to turn your Activity down :)", Toast.LENGTH_SHORT).show();
}
else {
HookManager.getDefault().callSuper(thiz, intent);
}
}
Notice:
- Write the following code down in where you want to your hooks enable.
HookManager.getDefault().applyHooks(YourClass.class);
- You can also hook a method without annotation.
HookManager.getDefault().hookMethod(originMethod, hookMethod);
3. Compatibility
- Dalvik & Android 4.2
- Dalvik & Android 4.3
- Art & Android 5.0
- Art & Android 5.0.1
- Art & Android 5.1
- Art & Android 6.0
- Art & Android 6.0.1
- aliyunOS VM
4. Showcase
https://github.com/dodola/RocooFix
5. Help improve Legend
if (Country.China == your.country) {
QQGroup.join(530497973);
}
else {
webView.loadUrl("https://github.com/asLody/legend/issues");
}