手動去掉APK當中的廣告

手機裡面有個軟體用著挺好用,但是就是有廣告,並且很容易誤點到
所以就想索性自己找找方法去掉廣告,如果手機有root就相對簡單,會有第三方的APP來處理,但是手機目前沒有root,就只好從程式本身來下手了。

注意:本文範例刪除的代碼未必正確,因為無從檢驗,也可能會刪除不應該的代碼。

首先用到的工具是apktool_2.3.1.jar
https://ibotpeaches.github.io/Apktool/

當然電腦裡面需要裝java
然後使用此工具將apk檔案解壓開,
java -jar apktool_2.3.1.jar d -f h:\s\a.apk -o output
這樣會輸入到同路徑下面 output的資料夾中
然後其實可以發現在smali\com下面的facebook和google下面都有ads的資料夾,網上有說直接將2個資料夾刪除掉,但我這個程式這樣做,安裝好後打開會報錯就退出了。

首先打開解壓資料夾的根目錄的AndroidManifest.xml
將下面代碼的部分去掉

當然上面這個文件裡面也包含程式需要申請哪些權限的樣子。
而實際上我看到下面還有一行是有ads的關鍵字,我索性也一起刪除掉了

然後使用Notepad++來在res\layout搜索代碼ads.AdView

比方看到

我們去掉整個<com.google.ads.AdView的節點,如果部分不確定刪除會不會有影響的,也可以嘗試把layout_width和layout_height的值都改成”0dip”

具體搜索的部分可以靈活的去搜,比方此例當中,fb的不知道位置在哪裡,我是搜索facebook.com或者http,將4處的http://……的連接全改成0.0.0.0

像fb的廣告可以搜

也有人有其他的分享參考
http://mobilemerit.com/how-to-remove-admob/
最後修改完畢後,就是將程式再重新打包
打包有人做出工具來,但我自己嘗試好像沒生成文件,但我們一樣可以使用前面的指令來重新打包
java -jar apktool_2.3.1.jar b output -o luyin.apk

打包完畢後需要再重新簽名才可以在手機裡面安裝
簽名的工具是APKSign.exe
最後附上簽名的工具

apktool