zoukankan      html  css  js  c++  java
  • Cydia for Android2

    使用cydia框架编写cydia hook插件的时候由于initialize方法是无参的静态方法,所以不能获取上下文因此很多事情直接在initialize方法里就干不了,比如toast,发送广播等。由于hook是改变其他的类的API的执行结果。所以可以使用HOOK的那个类来获取context从而达到可以使用toast等的目的。

    办法:

     1             MS.hookMethod(arg0, toast, new MS.MethodAlteration() {
     2 
     3                 @Override
     4                 public Object invoked(Object arg0, Object... arg1)
     5                         throws Throwable {
     6                     Toast.makeText(((Activity)arg0).getApplicationContext(), "test", Toast.LENGTH_LONG).show();
     7                     invoke(arg0, "hook before");
     8                     invoke(arg0, arg1);
     9                     invoke(arg0, "hook end");                    
    10                     return null;
    11                 }
    12             });

    参数arg0就是最后HOOK的那个类的一个实例,利用她可以获取她里面的方法,由于我这里HOOK的类是Activity类型,所以可以获取Context.

  • 相关阅读:
    CF1056G
    mysql xtrabackup 备份恢复
    linux yum源配置
    mysql 第24章 优化
    mysql 第23章 监控
    mysql 第22章 高可用MMM、MHA
    mysql 第21章 集群
    mysql 第20章 复制
    mysql 第19章 备份恢复
    mysql 第18章 导入导出
  • 原文地址:https://www.cnblogs.com/xushihai/p/4503439.html
Copyright © 2011-2022 走看看