Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.content.Context;
import android.view.View;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.XposedHelpers.ClassNotFoundError;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
Expand Down Expand Up @@ -111,6 +112,35 @@ protected void beforeHookedMethod(MethodHookParam param)
return true;
}

/*
Used for blocking object construction
*/
public static boolean blockConstructor(final String packageName, final String adClass, final XC_LoadPackage.LoadPackageParam lpparam)
{
try
{
Class<?> adView = XposedHelpers.findClass(adClass, lpparam.classLoader);
XposedBridge.hookAllConstructors(adView, new XC_MethodHook()
{
@Override
protected void beforeHookedMethod(MethodHookParam param)
{
String debugMsg = String.format("blockConstructor: Detect %s constructor in %s", adClass, packageName);

Util.log(packageName, debugMsg);

param.setResult(new Object());
}
});
}
catch (ClassNotFoundError e)
{
return false;
}

return true;
}

public static boolean blockAdFunctionExact(final String packageName, final String adClass, final String adFunc, final Object parameter, final XC_LoadPackage.LoadPackageParam lpparam)
{
try
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package tw.fatminmin.xposed.minminguard.blocker.adnetwork;

import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.XposedHelpers.ClassNotFoundError;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
import tw.fatminmin.xposed.minminguard.blocker.ApiBlocking;
import tw.fatminmin.xposed.minminguard.blocker.Blocker;
import tw.fatminmin.xposed.minminguard.blocker.Util;

Expand All @@ -16,30 +13,11 @@ public class mAdserve extends Blocker

public boolean handleLoadPackage(final String packageName, LoadPackageParam lpparam)
{

try
{
//TODO Add blockConstructor to ApiBlocking, so we dont have to do this hack..
Class<?> adView = XposedHelpers.findClass("com.adsdk.sdk.banner.InAppWebView", lpparam.classLoader);
XposedBridge.hookAllConstructors(adView, new XC_MethodHook()
{

@Override
protected void beforeHookedMethod(MethodHookParam param)
{
Util.log(packageName, "Detect mAdserve InAppWebView constructor in " + packageName);

param.setResult(new Object());
}
});

if (ApiBlocking.blockConstructor(packageName, BANNER, lpparam)) {
Util.log(packageName, packageName + " uses mAdserve");
return true;
}
catch (ClassNotFoundError e)
{
return false;
}
return true;
return false;
}

@Override
Expand Down
Loading