小火箭加速器的广告越来越猖狂了,今天咱们再来整治一下。
问题:最大的难点其实不是去掉google的广告,而是去掉谷歌广告之后每次连接都要等待很久才连的上,中途切后台就会直接中断。
教程开始
1.去除谷歌广告部分(如果还有广告就自行论坛搜索去google广告的方法。反正我替换完就没有了。)
a.正则搜索
- (invoke(?!.*(close|Deactiv|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop|Throw)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(request.*|(.*(activat|Banner|build|Event|exec|header|html|initAd|initi|JavaScript|Interstitial|load|log|MetaData|metri|Native|onAd|propert|report|response|Rewarded|show|trac|url|(fetch|refresh|render|video)Ad).*)|.*Request)\(.*\)V)
复制代码
替换成
- nop
复制代码
b.正则搜索
- (invoke(?!.*(close|Deactiv|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop|Throw)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(request.*|(.*(activat|Banner|build|Event|exec|header|html|initAd|initi|JavaScript|Interstitial|load|log|MetaData|metri|Native|(can|get|is|has|was)Ad|propert|report|response|Rewarded|show|trac|url|(fetch|refresh|render|video)Ad).*)|.*Request)\(.*\)Z<p></p>
- <p style=”line-height: 30px; text-indent: 2em;”>\s{4})move-result\s([pv]\d+)</p>
复制代码
替换成
- const/4 $9, 0x0
复制代码
c.正则搜索
- “(http.*|//.*)(61\.145\.124\.238|/2mdn\.net|-ads\.|\.5rocks\.io|\.ad\.|\.adadapted|\.admitad\.|\.admost\.|\.ads\.|\.aerserv\.|\.airpush\.|\.batmobil\.|\.chartboost\.|\.cloudmobi\.|\.conviva\.|\.dov-e\.com|\.fyber\.|\.mng-ads\|\.mydas\.|\.predic\.|\.talkingdata\.|\.tapdaq\.|\.tele\.fm|\.unity3d\.|\.unity\.|\.wapstart\.|\.xdrig\.|\.zapr\.|\/ad\.|\/ads|a4\.tl|accengage|ad4push|ad4screen|ad-mail|ad\..*_logging|ad\.api\.kaffnet\.|ad\.cauly\.co\.|adbuddiz|adc3-launch|adcolony|adfurikun|adincube|adinformation|adkmob|admax\.|admixer|admob|admost|ads\.mdotm\.|adsafeprotected|adservice|adsmogo|adsrvr|adswizz|adtag|adtech\.de|advert|adwhirl|adz\.wattpad\.|alimama\.|alta\.eqmob\.|amazon-.*ads|amazon\..*ads|amobee|analytics|anvato|appboy|appbrain|applovin|applvn|appmetrica|appnext|appodeal|appsdt|appsflyer|apsalar|avocarrot|axonix|banners-slb\.mobile\.yandex\.net|banners\.mobile\.yandex\.net|brightcove\.|burstly|cauly|cloudfront|cmcm\.|com\.google\.android\.gms\.ads\.identifier\.service\.START|comscore|contextual\.media\.net|crashlytics|crispwireless|criteo\.|dmtry\.|doubleclick|duapps|dummy|flurry|fwmrm|gad|getads|gimbal|glispa|google\.com\/dfp|googleAds|googleads|googleapis\..*\.ad-.*|googlesyndication|googletagmanager|greystripe|gstatic|heyzap|hyprmx|iasds01|inmobi|inneractive|instreamatic|integralads|jumptag|jwpcdn|jwpltx|jwpsrv|kochava|localytics|madnet|mapbox|mc\.yandex\.ru|media\.net|metrics\.|millennialmedia|mixpanel|mng-ads\.com|moat\.|moatads|mobclix|mobfox|mobpowertech|moodpresence|mopub|native_ads|nativex\.|nexage\.|ooyala|openx\.|pagead|pingstart|prebid|presage\.io|pubmatic|pubnative|rayjump|saspreview|scorecardresearch|smaato|smartadserver|sponsorpay|startappservice|startup\.mobile\.yandex\.net|statistics\.videofarm\.daum\.net|supersonicads|taboola|tapas|tapjoy|tapylitics|target\.my\.com|teads\.|umeng|unityads|vungle|zucks).*”
复制代码
替换成
- “127.0.0.1”
复制代码
好了,上面三板斧砍完,google广告已经被拿下了。如果你只是不喜欢广告,可以走人了。
接下来,就是如何去除代理连接的等待时间, 并防止进入后台代理停止。
2.去除等待时间部分
找到MainActivity的代码(自己找)
a. 去除广告调用
onResume改成如下;
- .method public final onResume()V
- .registers 6
- invoke-super {p0}, Lzq;->onResume()V
- # 1. 根据 Fragment 决定 VPN 按钮显隐
- invoke-virtual {p0}, Lzq;->H()Ljr;
- move-result-object v0
- const v1, 0x7f0a0112
- invoke-virtual {v0, v1}, Lir;->C(I)Landroidx/fragment/app/k;
- move-result-object v0
- instance-of v0, v0, Liw;
- if-nez v0, :cond_1f
- invoke-virtual {p0}, Lio/nekohasekai/sagernet/ui/MainActivity;->X()Ljr2;
- move-result-object v0
- iget-object v0, v0, Ljr2;->h:Ljava/lang/Object;
- check-cast v0, Lio/nekohasekai/sagernet/widget/SimpleVpnButton;
- const/16 v1, 0x8
- invoke-virtual {v0, v1}, Landroid/view/View;->setVisibility(I)V
- :cond_1f
- # 2. 刷新 VPN 状态按钮
- invoke-virtual {p0}, Lio/nekohasekai/sagernet/ui/MainActivity;->X()Ljr2;
- move-result-object v0
- iget-object v0, v0, Ljr2;->h:Ljava/lang/Object;
- check-cast v0, Lio/nekohasekai/sagernet/widget/SimpleVpnButton;
- sget-object v1, Lio/nekohasekai/sagernet/database/a;->l:Lio/nekohasekai/sagernet/database/a;
- sget-object v1, Lio/nekohasekai/sagernet/database/a;->o:Lv8;
- invoke-virtual {v0, v1}, Lio/nekohasekai/sagernet/widget/SimpleVpnButton;->c(Lv8;)V
- # 3. 广告代码全部删除
- # 原 54-119 行广告逻辑已剔除
- return-void
- .end method
复制代码
- n() u0() r()三个方法清空;
复制代码
- invoke-virtual {v0, p0}, Lvy;->e(Landroid/app/Activity;)V #搜索并注释掉这行代码;
复制代码
- .line 320
- const-string p1, “mb” # 广告 SDK 需要的 slot-id ,nop掉;
- .line 322
- new-instance v5, Lio/nekohasekai/sagernet/ui/MainActivity$e; #nop掉;
- .line 324
- invoke-direct {v5, p0}, Lio/nekohasekai/sagernet/ui/MainActivity$e;-><init>(Lio/nekohasekai/sagernet/ui/MainActivity;)V #nop掉;
- .line 327
- invoke-static {p1, v5}, Lio/nekohasekai/sagernet/ads/a;->b(Ljava/lang/String;Lps;)V #nop掉;
复制代码
本帖隐藏的内容
b. 整治加载等待弹窗
W()方法修改
- .method public final W()V
- .registers 4
- # 获取 LifecycleCoroutineScope
- invoke-static {p0}, Lcw;->b(Lw10;)Landroidx/lifecycle/LifecycleCoroutineScopeImpl;
- move-result-object v0
- # 创建协程任务 MainActivity$c
- new-instance v1, Lio/nekohasekai/sagernet/ui/MainActivity$c;
- const/4 v2, 0x0
- invoke-direct {v1, p0, v2}, Lio/nekohasekai/sagernet/ui/MainActivity$c;-><init>(Lio/nekohasekai/sagernet/ui/MainActivity;Lth;)V
- # 启动协程(Dispatchers.IO)
- const/4 v3, 0x3
- invoke-static {v0, v2, v1, v3}, Ldh;->A(Lhi;Ldi;Lft;I)Lkp0;
- return-void
- .end method
复制代码
[color=rgba(232, 230, 227, 0.84)]
c. 防止切后台代理关闭
- invoke-static {}, Lio/nekohasekai/sagernet/SagerNet$i;->d()V #搜索这行代码并nop掉
复制代码
感谢分享