[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下載地址,請點擊這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章