Git Product home page Git Product logo

minminguard's Introduction

icon MinMinGuard

Build Status

Introduction

MinMinGuard is an Ad-remover made with Xposed Framework for Android. MinMinGuard can completely remove both the ads inside apps and the empty space caused by those ads. Conventional ads removing apps are only able to block the ad content, but the space taken by the ad will still remain unused (black). MinMinGuard successfully removes that black space, which extends the app window and makes your user-experience better!

Comparison

Discussion and Supports

If you have any idea or need some supports, you are welcome to post on the Xda Developers forum or chat in the Gitter Room.

Join the chat at https://gitter.im/MinMinGuard/MinMinGuard

Developing and Contributing

Adding a new ad network into support

You may find some apps' ads are not blocked and removed by MinMinGuard. This may cause by the apps use non-supported ad networks(some local ads providers ex: Vpon in Taiwan). In this case you can help me by doing a reverse engineering on the app and add the non-supported ad network into support.

public abstract class Blocker {
    /**
     *
     * @param packageName
     * @param lpparam
     * @param removeAd
     * @return True if currrent handling app using this adnetwork. False otherwise.
     */
    abstract public boolean handleLoadPackage(final String packageName, XC_LoadPackage.LoadPackageParam lpparam, final boolean removeAd);
    abstract public String getBanner();
    abstract public String getBannerPrefix();
    public String getName() {
        return getClass().getSimpleName();
    }
}

You can implement a ad network blocker by extending Blocker class. Method handleLoadPackage is used for API based blocking to intercept api call for loading ads from adview. You can leverage ApiBlocking.removeBanner and ApiBlocking.blockAdFunction to remove banner view and block ad functions. Method getBanner and getBannerPrefix are used for Name based blocking. You can opt to return null and name based blocking will not be triggered.

public class Flurry extends Blocker {

  public static final String BANNER = "com.flurry.android.FlurryAds";
  public static final String BANNER_PREFIX = "com.flurry.android";

  public static final String NATIVE_AD = "com.flurry.android.ads.FlurryAdNative";

	@Override
	public String getBannerPrefix() {
		return BANNER_PREFIX;
	}

	@Override
	public String getBanner() {
		return BANNER;
	}
	public boolean handleLoadPackage(final String packageName, LoadPackageParam lpparam, final boolean removeAd) {
    boolean result = false;
    result |= ApiBlocking.removeBanner(packageName, BANNER, "displayAd", lpparam, removeAd);
    result |= ApiBlocking.blockAdFunction(packageName, BANNER, "fetchAd", lpparam, removeAd);
    result |= ApiBlocking.blockAdFunction(packageName, NATIVE_AD, "fetchAd", lpparam, removeAd);
		return result;
	}
}
public static Blocker[] blockers = {
        /* Popular adnetwork */
        new Ad2iction(), new Adbert(), new Adfurikun(), new AdMarvel(), new Admob(), new AdmobGms(), new Amazon(),
        new Amobee(), new AppBrain(), new Bonzai(), new Chartboost(), new Domob(), new Facebook(), new Flurry(),
        new GmsDoubleClick(), new Hodo(), new ImpAct(), new Inmobi(), new Intowow(), new KuAd(), new mAdserve(),
        new Madvertise(), new MasAd(), new MdotM(), new Millennial(), new Mobclix(), new MoPub(), new Nend(),
        new Og(), new Onelouder(), new OpenX(), new SmartAdserver(), new Smarti(), new Startapp(), new Tapfortap(),
        new TWMads(), new UnityAds(), new Vpadn(), new Vpon(), new Waystorm(), new Yahoo()
};

Above is a classic example. After you complete the new blocker, you have to remember to add it to the blockers array at the Main class to activiate the new blocker.

Contributors

Your name will be listed here if you contribute some significant changes into the project.

Legal and Licensing

MinMinGuard is licensed under the GPL-3.0 license.

minminguard's People

Contributors

alienyd avatar androplus-org avatar bjosey avatar bloezjax avatar chiehmin avatar defkev avatar dev4mod avatar digitaljosee avatar duxa174 avatar elton235 avatar haseoxth avatar hero355 avatar jumoog avatar killer7mod avatar leak4mk0 avatar mh0rst avatar mskjel avatar pakitos avatar ponsasinorem avatar pylersm avatar sikatsu avatar skyguy126 avatar thanhtai2009 avatar wanam avatar wedydq10 avatar xspeedpl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

minminguard's Issues

Not blocking Ads in Casper

MinMinGuard (v2.0alpha10) is not blocking ads in Casper

Google LG Nexus 5
Android 6.0.1 (Pure Nexus ROM 6.0.1-20160203)
(Android Security Patch level: 1 January 2016)
Xposed v80-sdk23-arm

Here is a snippet of Logcat log

dnvivk3
rtuxzft

Fork

Is there a fork continuing development?

Privacy is a right NOT a commodity. Apps offered as free ought be without cost. Otherwise honestly label which flavor of malware [aware].

Showing ads

After last updates is not blocking the ads which have been showed in almost every app.

Yahoo Fantasy Sports issue

First page which shows results, not only blocks ads but also the content. Please check in to that. All the other pages work fine.

Yahoo Fantasy Sports

With ad With MinMinGuard enabled
Imgur Imgur

Thanks for the amazing work!

New UI is less useful

Using 2.0a2 in auto mode there is no way to block ads from system apps. This option doesn't exist in manual mode either.

Apps no longer show which trackers were detected.

能否对所有应用进行扫描且自动选中广告应用?

现在只能全选全不选,一旦错点全选,以前的设置选择也没了,于是发现,只有在MMG生效之后安装的才能扫描出广告并标识,之前安装的就算更新过也没有广告标记,对我这种装了几百个应用只有个位数有广告的就很容易遗漏了。
还是希望能像LBE那样方便操作。
BTW,能注释下效果比LBE好的原理么?

Ad Network requests

Can you add Skype please

Hi,
As now skype has started to put a big banner inside the app, I would love to be added to MinMinGuard please, I checked the box inside the app but didn't worked, beside MinMin doesn't show any add type for skype.

Thanks a lot :)

The feature of blocking advertisements aren't working anymore after updates today in KitKat.(Ver. 1.8.0)

Hi FatMinMin,
There are some problems in updates today,which causes advertisements can't be hidden as before.
I've uploaded an image for example;It's a popular application in Taiwan called JPTT(com.joshua.jptt).
So now,I turn back to use old version 1.7.5.
Need your help to fix it,thanks.

The environment I used is LG GPRO(E988),official KitKat Rom.
Xposed version 2.6.1
MinMinGuard 1.8.0
Also,advertisements in an app called 雙鐵時刻表(idv.nightgospel.TWRailScheduleLookUp) can't be blocked correctly,and I need your help to block it.Thanks.
screenshot_2015-02-17-09-43-44

Crash report

java.lang.ClassCastException: android.view.ViewRootImpl cannot be cast to android.view.ViewGroup
at tw.fatminmin.xposed.minminguard.Main.removeAdView(Main.java:297)
at tw.fatminmin.xposed.minminguard.Main.removeAdView(Main.java:318)
at tw.fatminmin.xposed.minminguard.Main.removeAdView(Main.java:318)
at tw.fatminmin.xposed.minminguard.Main.removeAdView(Main.java:318)
at tw.fatminmin.xposed.minminguard.Main.removeAdView(Main.java:318)
at tw.fatminmin.xposed.minminguard.Main.removeAdView(Main.java:318)
at tw.fatminmin.xposed.minminguard.Main.removeAdView(Main.java:318)
at tw.fatminmin.xposed.minminguard.Main.removeAdView(Main.java:318)
at tw.fatminmin.xposed.minminguard.Main.removeAdView(Main.java:318)
at tw.fatminmin.xposed.minminguard.Main$3.afterHookedMethod(Main.java:171)
at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:645)
at android.view.ViewGroup.addView(Native Method)
at com.morrison.applocklite.n.run(Unknown Source)
at android.app.Activity.runOnUiThread(Activity.java:4713)
at com.morrison.applocklite.BaseActivity.a(Unknown Source)
at com.morrison.applocklite.BaseActivity.e(Unknown Source)
at com.mobfox.sdk.n.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5144)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)

YouBike (tw.com.sstc.youbike)

It'd be great if you could add ad blocking for the YouBike app:
https://play.google.com/store/apps/details?id=tw.com.sstc.youbike

The ads shows up on the bottom of the station list screen and (from looking at the decompiled source) also somewhere else.

I generally avoid adware anyway (either buying the full version or going for an alternative) so this is the only thing I was hoping to use your module for because in this particular situation there's no other choice.

The app is crap though so please don't spend too much time on it, especially as the most important functionality is mirrored in the ad-free:
https://play.google.com/store/apps/details?id=tms.tw.governmentcase.taipeitranwell

I was just surprised that it's not already blocked since you seem to be from Taiwan too.
All the best,

Admob Isn't Working

Welcome back~
There's only one app that I want to use MinMinGuard on,
Mango: http://mango.leetsoft.net/
Download: http://mango.leetsoft.net/install.php

MinMin recognizes the ad as Admob and yes, I do have Mango checked to have it's ads recursively removed in the MinMinGuard settings. I force kill Mango before changing any setting in MinMinGuard, yet it still creates the ad space. The ad itself is blank, most likely due to my patched host file. Tried reinstalling both Mango and MinMin, as well as enabling MinMin in many different orders when restarting the app. No luck, I just end up with an adspace but no ad.
Ad shown at the bottom of the picture:
screenshot_2014-05-25-15-39-11

not working with disabled resource hook

since version 2 alpha 7.

due to a glitch on official rom that exposed wont work without disabling the resource hook.

and now minminguard doesnt work because of that option enabled in the exposed installer setting.

External subscription, user lists

Akin to AdAway or UnbelovedHosts please allow [advanced] users ability to control what to not-view. This feature will allow for URL /path/ filtering; hopefully XPrivacy Pro will also allow path filtering (from its WhiteList editor). XPrivacy is preferred for being open source unlike UnbelovedHosts.

User WhiteList should be able to have a priority higher than any BlackList very-unlike wladimir palant's ad"block"plus. And unlike its eyeo enterprise selling WhiteList position user BlackList should be able to have the highest priority.

(no longer an ad"block"plus advocate; AdBlock Edge ftw for Firefox. Less awesome choices for chromium [!=chrome] )

Improved implementation

There are hundreds more ad networks out there. As a developer, this just means I'd switch to another ad network that isn't popularly blocked. Rather than playing cat and mouse by hardcoding networks why not have the app prompt when any 3rd party library is called, launch a Google search to see what it is, allow/deny it, and a way to revert if necessary.

adblocking is not a moral crime: privacy is NOT a commodity

Kudos to you for helping users protect themselves from profoundly intimate violation.

privacy is NOT a commodity. Treating it as such is a moral crime near the level of human trafficking.

when apps are offered free making them free helps the developer effect his will. Until such time as developers honestly label apps as malware or the adware kind of malware to provoke an informed user consent discussion adblocking by any means will continue rightly

:)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.