Guest User

How to get a Context from everywhere

a guest
Oct 25th, 2013
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.08 KB | None | 0 0
  1. package com.xxx.xxx; // replace with your own package
  2.  
  3. import java.lang.reflect.Method;
  4.  
  5. import java.lang.reflect.Method;
  6. import android.content.Context;
  7. import android.util.Log;
  8. import com.saurik.substrate.MS;
  9.  
  10. public class Main {
  11.    static void initialize() {
  12.         MS.hookClassLoad("android.app.ContextImpl", new MS.ClassLoadHook() {
  13.             public void classLoaded(Class<?> _clazz) {
  14.                 hookGetSystemContext(_clazz);
  15.             }
  16.         });
  17.     }
  18.  
  19.     protected static void hookGetSystemContext(Class<?> _clazz) {
  20.         Method method;
  21.         try {
  22.             Class<?>[] params = new Class[1];
  23.             params[0] = String.class;
  24.  
  25.             method = _clazz.getMethod("getSystemService", params);
  26.         } catch (NoSuchMethodException e) {
  27.             method = null;
  28.             Log.d("ERROR", Log.getStackTraceString(e));
  29.         }
  30.  
  31.         if (method != null) {
  32.  
  33.             MS.hookMethod(_clazz, method,
  34.                     new MS.MethodAlteration<Context, Object>() {
  35.  
  36.                         public Object invoked(final Context hooked,
  37.                                 final Object... args) throws Throwable {
  38.                             context = hooked.getApplicationContext();
  39.                             return invoke(hooked, args);
  40.                         }
  41.                     });
  42.         }
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment