在網上找 MSN 6.5 的去廣告版,一直沒有,只好自己動手,折磨了一整天,終於搞定了。
成功去除登入介面廣告、主介面廣告、交談視窗廣告、登出視窗的廣告。
親測可用(由於修改了簽名,所以需要建議卸載以前版本的 MSN 後重新安裝)。
放在網盤了,地址是:
http://dl.dbank.com/c0xpo0rzno
再來介紹方法:
一、前提
1、安裝 JDK
2、使用 baksmali.jar 反編譯 classes.dex;
java -jar baksmali.jar classes.dex -o classes
3、修改相應的檔案;
4、使用 smali.jar 進行打包,得到 classes.dex,替換 apk 檔案中的同名檔案;
java -jar smali.jar classes -o classes.dex
5、使用 AndroidResEdit (漢化狂人作品)對 apk 簽名。
註:以下修改均在第 3 步反編譯得到的檔案中進行。
二、去除主介面廣告辦法:
修改 com/pica/ui/tools/AdImageView 的建構函式 constructor,注釋或刪掉
invoke-virtual {p0, v2, v3}, Lcom/pica/ui/tools/AdImageView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
這行代碼,注意注釋的符號是“#”。
三、去除登入介面廣告、交談視窗廣告、登出視窗的廣告
上面辦法只是禁止了廣告的顯示,還是沒有達到屏蔽廣告下載節省流量的目的,所以還有更重要的修改:
修改 com/pica/msn/Jabber 的下面幾個方法:
.method public addAdvistRequest(Ljava/lang/String;)V</p><p>.method public addFootADRequest(BLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V</p><p>.method public addGetAdRequest(Ljava/lang/String;)V</p><p>.method public addLoginADRequest(Ljava/lang/String;)V</p><p>// 有興趣的話還可以注釋掉下面函數中的代碼<br />.method public advistClick(Ljava/lang/String;Ljava/lang/String;)V
這樣就很根本上杜絕了廣告的下載,一勞永逸
四、登入介面中的關於
在登入介面中點“關於”,預設顯示的是版本號碼和 messenger@pica.com
現在可以把這個郵箱地址換成任何你想要顯示的內容,只需要修改 com/pica/msn/LoginActivity 的建構函式 constructor,找到
const-string v1, "messenger@pica.com"
換成要顯示的字串即可。