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

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

安装到手机之后,打开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下载地址,请点击这里

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页