[Android]去除程序中广告的好方法:告诉广告没有网络连接

本文介绍了一种去除Android程序中广告的方法:通过修改apk代码,模拟无网络连接状态。具体步骤包括使用apktool反编译APK,然后在代码中删除检查网络连接的代码段,最后重新打包。此方法不仅可以移除广告,还能避免广告消耗流量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实例程序:黑板  点击这里下载

安装到手机之后,打开wifi,可以看到广告了。


首先需要使用apktool进行反编译,然后使用notepad++搜索“connectivity”,会看到:


双击进入文件,可以看到程序调用getsystemservice来获取当前网络连接的状态:

.method public static d(Landroid/content/Context;)Ljava/lang/String;
    .locals 1

    const-string v0, "connectivity"

    invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Landroid/net/ConnectivityManager;

    invoke-virtual {p0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;

    move-result-object v0

    if-nez v0, :cond_0

    const/4 v0, 0x0

    :goto_0
    return-object v0

    :cond_0
    invoke-virtual {v0}, Landroid/net/NetworkInfo;->getType()I

    move-result v0

    packed-switch v0, :pswitch_data_0

    const-string v0, "unknown"

    goto :goto_0

    :pswitch_0
    const-string v0, "ed"

    goto :goto_0

    :pswitch_1
    const-string v0, "wi"

    goto :goto_0

    :pswitch_data_0
    .packed-switch 0x0
        :pswitch_0
        :pswitch_1
    .end packed-switch
.end method
从上面的代码可以看到,如果没有网络会返回unknown,但为了保险起见,我们让它返回0.

只需要删除

if-nez v0, :cond_0
即可,然后使用apktool进行编译,使用zipalign进行对齐优化,使用testsign进行签名。然后卸载手机中原有的pixlebord,因为两者的签名不一致。再安装crack之后的pixlebord。

这时你会发现就算没有更改layout中的width和height,广告照常没有了。而且,不会占用你的流量了。


破解之后的apk下载地址,请点击这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值