目录

工具

AndroidManifest

关闭Google全屏广告

隐藏Google横幅广告

去除Google广告

去除Facebook广告

去除UnityAds广告

去除MoPub广告

去除穿山甲平台广告

去除Start.io广告

去除Stack Appodeal广告

去除Chartboost广告

去除Applovin广告

去除Ogury广告

去除iron广告

去除Amazon广告

去除inmobi广告

去除Smaato广告

去除Tapjoy广告

去除AdColony广告

去除HyprMX广告

去除OneSignal广告

去除appnext广告

去除TradPlus广告

去除yandex广告

去除Vungle广告

去除Yodo1Mas广告

去除solodroid广告


工具

apktool;任意编辑器或IDE

用apktool将apk反编译为smail文件,修改smail,最后重新编译成apk

AndroidManifest

AndroidManifest.xml文件中搜索ads关键字

删除相关信息

关闭Google全屏广告

com.google.android.gms.ads.AdActivity

.method protected onCreate(Landroid/os/Bundle;)V.locals 1invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)Vinvoke-virtual {p0}, Landroid/app/Activity;->finish()Vreturn-void.end method

隐藏Google横幅广告

com.google.android.gms.ads.BaseAdView

The ad size can only be set once on AdView

The ad unit ID can only be set once on AdView.

.method public onLayout(ZIIII)V.locals 2const/4 p1, 0x0invoke-virtual {p0, p1}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;move-result-object p1const/16 v1, 0x8invoke-virtual {p1, v1}, Landroid/view/View;->setVisibility(I)Vif-eqz p1, :cond_0invoke-virtual {p1}, Landroid/view/View;->getVisibility()Imove-result v0const/16 v1, 0x8if-eq v0, v1, :cond_0invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()Imove-result v0invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()Imove-result v1sub-int/2addr p4, p2sub-int/2addr p4, v0div-int/lit8 p4, p4, 0x2sub-int/2addr p5, p3sub-int/2addr p5, v1div-int/lit8 p5, p5, 0x2add-int/2addr v0, p4add-int/2addr v1, p5invoke-virtual {p1, p4, p5, v0, v1}, Landroid/view/View;->layout(IIII)V:cond_0return-void
.end method

去除Google广告

googleAdViewId为ad_container

首先在AndroidManifest.xml文件内搜索ads关键字,将关于com.google.android.gms.ads的标签全部删除

去除后直接打包运行会崩溃

全局搜索

You must have the following declaration within the <application> element:     <meta-data android:name=\"com.google.android.gms.version\" android:value=\"@integer/google_play_services_version\" />

You must have the following declaration with

搜索结果可能会出现多个

找到方法结尾为 (Landroid/content/Context;I)I 的方法

或IllegalStateException异常

定位该方法

使其返回0

示例

com.google.android.gms.common.GooglePlayServicesUtilLight

.method public static isGooglePlayServicesAvailable(Landroid/content/Context;I)I.locals 3.annotation runtime Ljava/lang/Deprecated;.end annotationconst/4 v0, 0x0return v0
.end method

或定位

com.google.android.gms.ads.MobileAds

清除其中

initialize

admob_appopen
com.google.android.gms.ads.appopen.AppOpenAd
public static void load(final Context context, final String str, final AdRequest adRequest, final int i, final AppOpenAdLoadCallback appOpenAdLoadCallback) {Preconditions.checkNotNull(context, "Context cannot be null.");Preconditions.checkNotNull(str, "adUnitId cannot be null.");Preconditions.checkNotNull(adRequest, "AdRequest cannot be null.");Preconditions.checkMainThread("#008 Must be called on the main UI thread.");zzbhz.zzc(context);if (((Boolean) zzbjn.zzd.zze()).booleanValue()) {if (((Boolean) zzay.zzc().zzb(zzbhz.zziv)).booleanValue()) {zzcex.zzb.execute(new Runnable() { // from class: com.google.android.gms.ads.appopen.zzb@Override // java.lang.Runnablepublic final void run() {Context context2 = context;String str2 = str;AdRequest adRequest2 = adRequest;try {new zzbco(context2, str2, adRequest2.zza(), i, appOpenAdLoadCallback).zza();} catch (IllegalStateException e) {zzbyy.zza(context2).zzd(e, "AppOpenAd.load");}}});return;}}new zzbco(context, str, adRequest.zza(), i, appOpenAdLoadCallback).zza();}

admob_banner

com.google.android.gms.ads.BaseAdView
public void setAdUnitId(String str) {this.zza.zzu(str);}public final void zzu(String str) {if (this.zzl == null) {this.zzl = str;return;}throw new IllegalStateException("The ad unit ID can only be set once on AdView.");}
public void loadAd(final AdRequest adRequest) {Preconditions.checkMainThread("#008 Must be called on the main UI thread.");zzbhz.zzc(getContext());if (((Boolean) zzbjn.zze.zze()).booleanValue()) {if (((Boolean) zzay.zzc().zzb(zzbhz.zziv)).booleanValue()) {zzcex.zzb.execute(new Runnable() { // from class: com.google.android.gms.ads.zzc@Override // java.lang.Runnablepublic final void run() {BaseAdView baseAdView = BaseAdView.this;try {baseAdView.zza.zzm(adRequest.zza());} catch (IllegalStateException e) {zzbyy.zza(baseAdView.getContext()).zzd(e, "BaseAdView.loadAd");}}});return;}}this.zza.zzm(adRequest.zza());}

admob_inter

com.google.android.gms.ads.interstitial.InterstitialAd
public static void load(final Context context, final String str, final AdRequest adRequest, final InterstitialAdLoadCallback interstitialAdLoadCallback) {Preconditions.checkNotNull(context, "Context cannot be null.");Preconditions.checkNotNull(str, "AdUnitId cannot be null.");Preconditions.checkNotNull(adRequest, "AdRequest cannot be null.");Preconditions.checkNotNull(interstitialAdLoadCallback, "LoadCallback cannot be null.");Preconditions.checkMainThread("#008 Must be called on the main UI thread.");zzbhz.zzc(context);if (((Boolean) zzbjn.zzf.zze()).booleanValue()) {if (((Boolean) zzay.zzc().zzb(zzbhz.zziv)).booleanValue()) {zzcex.zzb.execute(new Runnable() { // from class: com.google.android.gms.ads.interstitial.zza@Override // java.lang.Runnablepublic final void run() {Context context2 = context;String str2 = str;AdRequest adRequest2 = adRequest;try {new zzbrc(context2, str2).zza(adRequest2.zza(), interstitialAdLoadCallback);} catch (IllegalStateException e) {zzbyy.zza(context2).zzd(e, "InterstitialAd.load");}}});return;}}new zzbrc(context, str).zza(adRequest.zza(), interstitialAdLoadCallback);}

admob_native

com.google.android.gms.ads.AdLoader.Builder
public Builder(Context context, String str) {zzbo zzc = zzaw.zza().zzc(context, str, new zzbtx());this.zza = (Context) Preconditions.checkNotNull(context, "context cannot be null");this.zzb = zzc;}
com.google.android.gms.ads.AdLoader
private final void zzb(final zzdr zzdrVar) {zzbhz.zzc(this.zzb);if (((Boolean) zzbjn.zzc.zze()).booleanValue()) {if (((Boolean) zzay.zzc().zzb(zzbhz.zziv)).booleanValue()) {zzcex.zzb.execute(new Runnable() { // from class: com.google.android.gms.ads.zza@Override // java.lang.Runnablepublic final void run() {AdLoader.this.zza(zzdrVar);}});return;}}try {this.zzc.zzg(this.zza.zza(this.zzb, zzdrVar));} catch (RemoteException e) {zzcfi.zzh("Failed to load ad.", e);}}

去除Facebook广告

搜索

You must call AudienceNetworkAds.buildInitSettings(Context).initialize() before you can use Audience Network SDK.

定位其中

initialize

去除UnityAds广告

定位

com.unity3d.ads.UnityAds

文件

清空其中的

initialize;load;show

方法使其无效即可

或定位

com.unity3d.services.UnityServices

文件

清空其中

initialize

方法使其无效即可

去除MoPub广告

定位

com.mopub.common.MoPub

文件

清空其中

initializeSdk

方法

去除穿山甲平台广告

定位

com.bytedance.sdk.openadsdk.TTAdSdk

文件

清空其中

init

方法

去除Start.io广告

全局搜索

inAppPurchaseAmount

或定位

com.startapp.sdk.adsbase.StartAppSDK

com.startapp.android.publish.adsCommon.StartAppSDK

文件

清空其中的

init

方法

去除Stack Appodeal广告

定位

com.appodeal.ads.Appodeal

文件

清空其中的

initialize

方法

去除Chartboost广告

定位

com.chartboost.sdk.Chartboost

文件

清空其中

startWithAppId

方法

去除Applovin广告

定位

com.applovin.sdk.AppLovinSdk

文件

清空其中

initializeSdk

方法

全局搜索

Unable to find AppLovin SDK key. Please add  meta-data android:name=\"applovin.sdk.key\" android:value=\"YOUR_SDK_KEY_HERE\" into AndroidManifest.xml.

清空其中方法

Manifest文件内搜索

<meta-data android:name="applovin.sdk.key"

将其删除

去除Ogury广告

全局搜索

Presage

或定位

io.presage.Presage.start

清空其方法

io.presage.common.PresageSdk.init

去除iron广告

全局搜索

Lcom/ironsource/mediationsdk/IronSource;

.field public static final DataSource_MOPUB:Ljava/lang/String; = "MoPub"

init() must be called before loadInterstitial()

定位清空方法其中

public synchronized void init(Activity

public varargs declared-synchronized init(Landroid/app/Activity;

去除Amazon广告

定位

com.amazon.device.ads

清空其中

setAppKey

去除inmobi广告

定位

com.inmobi.sdk

或搜索

com.inmobi.rendering.InMobiAdActivity

清空其中

init

去除Smaato广告

定位

com.smaato.sdk.core.SmaatoSdk

或搜索

Parameter publisherId cannot be empty for SmaatoSdk::init

清空其中

init

去除Tapjoy广告

定位

com.tapjoy.Tapjoy

修改其中

connect

去除AdColony广告

定位

Cannot configure AdColony; configuration mechanism requires 5

Ignoring call to AdColony.getZone() as AdColony has not yet been

com.adcolony.sdk.AdColony

修改其中

configure

去除HyprMX广告

定位

com.hyprmx.android.sdk.initialization.InitializationController

"const HYPRInitializationController = new InitializationController(\""

\"); HYPRInitializationController.initialize(\'

HYPRInitializationController.javascriptUpgradeFailed(\

清空其中

initialize

方法

去除OneSignal广告

定位

com.onesignal.OneSignal

onesignal_app_id

OneSignal SDK initialization delayed, user privacy consent is set to required for this application.
Starting OneSignal initialization

清空其中

init

方法

去除appnext广告

定位

com.appnext.base.Appnext

Cannot init Appnext with null context

清空其中

init

方法

去除TradPlus广告

定位

com.tradplus.ads.base.GlobalTradPlus

GlobalTradPlus getLocalParam coppa:

清空其中

initTradPlusSdk

com.tradplus.ads.mobileads.TradPlus

facebook,admob and china plugin can not be together

com.tradplus.china.api.TPChinaSDKHandler

GDPR level setting error!!! Level must be PERSONALIZED or NONPERSONALIZED.

setGDPRDataCollection: context should not be null

清空其中

initSDK

去除yandex广告

定位

com.yandex.mobile.ads.common.MobileAds

清空其中

initialize

去除Vungle广告

定位

com.vungle.warren.Vungle

清空其中

init

去除Yodo1Mas广告

定位

com.yodo1.mas.Yodo1Mas

清空其中

init

去除solodroid广告

定位
 is selected as Primary Ads

com.solodroid.ads.sdk.format.Initialize

清空其中

initAds

initBackupAds

Android 去除各种厂家广告合集相关推荐

  1. 激发创意的35个超经典广告合集

    超经典的广告合集.好的广告是品牌增值的有效手段,看这些精彩的设计如何能激荡你的创意吧! Smoking Arm Pringles Pepper Nestea Eurostar Toyota Camry ...

  2. Android开发推荐资料大合集 【转载自51CTO】

    Android开发资料大集合 Android开发问题集锦1~6集合 http://down.51cto.com/data/440230 Android画图学习 http://down.51cto.co ...

  3. Android 21mod,熊猫博士小镇合集 Mod

    游戏介绍 打通30个独具特色的区域界限,探索并发掘各式各样的奇妙冒险! 开启乐趣无限的冒险! 想成为一名维护正义的警察,或经营一间自己的美发沙龙,或成为一名救治动物的兽医?在熊猫博士小镇中,一切你说了 ...

  4. Android Studio 小技巧/快捷键 合集

    原文链接: Android Studio Tips by Philippe Breault 原文作者 : Philippe Breault 译文出自 : 掘金翻译计划 译者 : Jaeger, Bru ...

  5. Excel表中查找、去除重复项方法合集

    第一种,主选项卡开始->条件格式->突出显示单元格规则->重复值. 第二种,主选项卡下,高级筛选,也可以去除重复项,但是这个时候的重复项就是完全重复的才会去除. 第三种,可以在需要做 ...

  6. Android渗透测试工具大合集

    Android传承着Linux的血统,无疑使渗透 从机器端到各种终端,使用起来更加方便,工具集中了众多方法,大大提高了渗透的效率(当然不推荐傻瓜式工具,这里只是入门,高手勿喷,初学者了解) 大名鼎鼎的 ...

  7. android自定义弹框效果合集,android 自定义弹出框AlertDialog ,很炫的哦

    于是就小小的模仿了下自己写了这个这样的效果, 主要代码如下: dlg = new AlertDialog.Builder(context).create(); dlg.show(); dlg.getW ...

  8. Android开发推荐资料大合集

    http://bbs.51cto.com/thread-937263-1.html 转载于:https://blog.51cto.com/6297123/1094880

  9. 2017下半年掘金日报优质文章合集:Android篇,android开发工程师

    GitHub 整理|那些优秀的开源时间日期选择器,总有一款适合你 Android程序员搭建一个属于自己的服务器,不再求各种公共API XRadarView 一个可高度自定义的雷达图控件 手把手教你写高 ...

  10. 2017下半年掘金日报优质文章合集:Android篇,靠着这份190页的面试资料

    在掘金微信群里的小伙伴应该都有看每日小报吧!这是小饼每天为大家精选的优质掘金文章(大家都很爱学习,我已经跟不上了QAQ-)小饼已经被N位群友连续几周催着出小报合集了,2017年马上就要结束了,拖延症绝 ...

最新文章

  1. 边缘计算用java_物联网技术和边缘计算
  2. 【机器学习】一文深层解决模型过拟合
  3. wp7技术类网站汇总
  4. Git submodule的使用
  5. FreeRADIUS 测试环境搭建
  6. php键盘输入函数,php的常用输入语句以及常用函数
  7. IPC--进程间通信二(命名管道)
  8. could not connect to server: No route to host Is the server running on host 192.168.163.181 and a
  9. 我也有了博客了,呵呵~~
  10. (Oracle)数据量统计存储过程
  11. 微信小程序模板订阅消息推送
  12. cmd 、java获取硬盘的序列号(serialnumber)物理地址 和磁盘ID逻辑地址
  13. 【Flash动画制作】
  14. Windows10下美化字体,达到类似mac的效果
  15. 磊科路由器信号按键_磊科怎么隐藏wifi信号 磊科路由器如何隐藏wifi信号?-192路由网...
  16. 【解决方案】国标GB28181视频监控平台国标流媒体服务器EasyGBS如何实现安保行业日常巡查视频监控系统解决方案?
  17. 深兰科技出席“2022世界设计之都大会”,论剑工业设计高峰论坛
  18. office安装包百度云
  19. linux使用sts4,视听说sts4-4
  20. libsvm安装使用及网格搜索法参数寻优

热门文章

  1. 什么是promise?
  2. 北京联通光猫WO-36(HG220GS-U)改为桥接模式
  3. 16、先天八卦与后天八卦各自有什么用途?
  4. 集群技术走向成熟 核心路由器的趋势
  5. 【免费-LOGO制作】——U钙网
  6. 什么是OneData?阿里数据中台实施方法论解读
  7. 天才小毒妃 第943章 小东西很努力
  8. 基于微信电影播放小程序系统设计与实现 开题报告
  9. 小米 网络位置服务器,小米科普:一文看懂路由器上的 Mesh 组网是什么
  10. 【保姆级】网络安全工程师学习成长路线,就业前景,薪资待遇分享