当前位置: 代码迷 >> Android >> [Android]除开程序中广告的好方法:告诉广告没有网络连接
  详细解决方案

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

热度:38   发布时间:2016-05-01 12:23:58.0
[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下载地址,请点击这里

  相关解决方案