您的位置:首页 > 理论基础 > 计算机网络

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

2012-12-20 16:15 344 查看
实例程序:黑板 点击这里下载

安装到手机之后,打开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下载地址,请点击这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: