转载

Git 项目推荐 | Android 开发的钩子框架 Legend

Legend

Git 项目推荐 | Android 开发的钩子框架 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!

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::startActivity@android.content.Intent") 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 . java HookManager.getDefault().applyHooks(YourClass.class);
  • You can also hook a method without annotation . java 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. Help improve Legend

If (Country.China == your.country) {   QQGroup.join(530497973); }  else {   webView.loadUrl("https://github.com/asLody/legend/issues"); }

5. Author

Lody

原文  http://git.oschina.net/lody/legend
正文到此结束
Loading...