2017-06-12 99 views
0

我有一些問題,使用暴露的框架,我不明白爲什麼我的日誌不工作在beforehookedmethod和afterhookedmethod?Xposed鉤不工作

package com.example.stefan.testxposed; 



import android.util.Log; 
import android.view.ContextMenu; 
import android.view.ContextMenu.ContextMenuInfo; 
import android.view.View; 

import de.robv.android.xposed.IXposedHookLoadPackage; 
import de.robv.android.xposed.IXposedHookZygoteInit; 
import de.robv.android.xposed.XC_MethodHook; 
import de.robv.android.xposed.XSharedPreferences; 
import de.robv.android.xposed.XposedBridge; 
import de.robv.android.xposed.XposedHelpers; 
import de.robv.android.xposed.XC_MethodHook.MethodHookParam; 
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; 

public class Tutorial implements IXposedHookZygoteInit,  IXposedHookLoadPackage { 

public static final boolean verbose = true; 

// What to hook 
private static final String PACKAGE_SETTINGS = 
     "com.android.settings"; 

private static final String CLASS_SIM = 
     //"com.android.settings.sim.SimDialogActivity"; 
"com.android.settings.wifi.WifiSettings"; 

private static XSharedPreferences mPreferences; 

@Override 
public void initZygote(StartupParam param) throws Throwable { 
    verboseLog(this, "initZygote(StartupParam)", "Simding starting..."); 

    //mPreferences = new XSharedPreferences(WiFiKeyView.class.getPackage().getName()); 
    //mPreferences.makeWorldReadable(); 
} 
public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable { 
    if (!lpparam.packageName.equals(PACKAGE_SETTINGS)) return; 
    verboseLog(this, "handleLoadPackage(LoadPackageParam)", "Gevonden starting..."); 

    final Class<?> SettingsClazz = XposedHelpers.findClass(CLASS_SIM, lpparam.classLoader); 
    XposedHelpers.findAndHookMethod(CLASS_SIM, lpparam.classLoader,"onCreateContextMenu", ContextMenu.class, View.class, ContextMenuInfo.class, new XC_MethodHook() { 

     @Override 
     protected void beforeHookedMethod(MethodHookParam param) throws Throwable { 
      verboseLog(this, "beforeHookedMethod(MethodHookParam)", "In de hook..."); 
      //Tutorial.verboseLog(this, "beforeHookedMethod(MethodHookParam)", "ding."); 
     } 
     @Override 
     protected void afterHookedMethod(MethodHookParam param) throws Throwable { 
      XposedBridge.log("AFTER"); 
      verboseLog(this, "beforeHookedMethod(MethodHookParam)", "In de hoook..."); 
      //Tutorial.verboseLog(this, "afterHookedMethod(MethodHookParam)", "ding."); 
     } 
    }); 
} 

public static void verboseLog(Object who, String methodAndParams, String what) { 
    if (verbose) { 
     String packageAndClass = (who instanceof Class) ? ((Class<?>) who).getCanonicalName() : who.getClass().getCanonicalName(); 
     String tag = "SimSettings (" + packageAndClass + "#" + methodAndParams + ")"; 

     Log.v(tag, what); 
     XposedBridge.log(tag + " " + what); 
    } 
} 
} 

而且我的日誌文件如下:

11月6日至12日:42:50.319 I/Xposed(359):加載類com.example.stefan.testxposed.Tutorial 11月6日至12日:42:50.335 I/Xposed(359):SimSettings(com.example.stefan.testxposed.Tutorial#initZygote(StartupParam))Simding starting ... 06-12 11:43:09.689 I/Xposed(5717):SimSettings (com.example.stefan.testxposed.Tutorial#handleLoadPackage(LoadPackageParam))已找到起始... 十一月6日至12日:43:11.010 I/Xposed(5993):SimSettings(com.example.stefan.testxposed.Tutorial#handleLoadPackage (LoadPackageParam))Gevonden開始... 11月6日至12日:43:13.133 I/Xposed(6385):SimSettings(com.example.stefan.testxposed.Tutorial#handleLoadPackage(LoadPackageParam))已找到起始... 11月6日至12日:43:14.124 I/Xposed (6528):SimSettings(com.example.stefan.testxposed.Tutorial#handleLoadPackage(LoadPackageParam))已找到起始... 11月6日至12日:43:15.077 I/Xposed(6670):SimSettings(com.example.stefan。 testxposed.Tutorial#handleLoadPackage(LoadPackageParam))已找到起始... 十一月6日至一十二日:43:16.500 I/Xposed(6880):SimSettings(com.example.stefan.testxposed.Tutorial#handleLoadPackage(LoadPackageParam))已找到開始。 .. 11月6日至12日:43:48.390 I/Xposed(8719):SimSettings(com.example.stefan.testxposed.Tutorial#handleLoadPackage(LoadPackageParam))已找到起始... 11月6日至12日:44:51.582我/ Xposed(9083):SimSettings(com.example.stefan.testxposed.Tutorial#ha ndleLoadPackage(LoadPackageParam))Gevonden starting ... 06-12 11:44:52.545 I/Xposed(9248):SimSettings(com.example.stefan.testxposed.Tutorial#handleLoadPackage(LoadPackageParam))Gevonden starting ... 06 -12 11:44:53.608 I/Xposed(9415):SimSettings(com.example.stefan.testxposed.Tutorial#handleLoadPackage(LoadPackageParam))已找到起始... 11月6日至12日:44:55.309 I/Xposed(9725 ):SimSettings(com.example.stefan.testxposed.Tutorial#handleLoadPackage(LoadPackageParam))Gevonden starting ... 06-12 11:45:31.457 I/Xposed(10704):SimSettings(com.example.stefan.testxposed。 Tutorial#handleLoadPackage(LoadPackageParam))Gevonden starting ...

在這個日誌文件中,我沒有看到這兩行回來?: verboseLog(this,「befor eHookedMethod(MethodHookParam)「,」In de hook ...「); (this,「beforeHookedMethod(MethodHookParam)」,「In de hoook ...」);

+0

有沒有例外或方法沒有運行? – 4knahs

回答

0

這是愚蠢的,它已經工作..但我沒有觸發WifiSettings onCreateContextMenu方法。它觸發後,它的工作!我假設xposed確實觸發了該功能,但它不會。所以這是我自己的錯誤