透過修改 apk 來移除巴哈姆特 app 廣告

之前已經有一篇阻擋 Android 版巴哈姆特的廣告在講如何阻擋巴哈 app 廣告了 但自從 Android 7 開始,Android 對於使用者自己新增的憑證有限制會導致 https 過濾不完全,有 root 的裝置可以使用 Move Certs! 這個 app 來把 AdGuard 的憑證轉為系統憑證,這樣 AdGuard 才能繼續正常過濾 因此對於沒 root 的裝置就需要其他辦法來去除廣告了,這就是這篇文章的目的

資訊來源: ArguardForAndroid issue #334

Move Certs! 的 GitHub releases 中只有 1.0.1 的 apk,最新版 1.0.2 可能要另外找,而它的 Package name 是 com.nutomic.zertman

更新: 有使用 Magisk 的人可以去搜尋一個 Move Certificates 的 module 來安裝,功能和 Move Certs! 一樣

準備

  1. 安裝 java
  2. 安裝 apktool (內有安裝教學)
  3. 取得原版巴哈姆特 apk (apkpure)

這篇文章使用版本為

1
2
3
java=1.8.0_162
apktool=2.3.1
巴哈姆特apk=5.7.0

修改

在有bahamut.apk的目錄下輸入指令apktool d bahamut.apk 然後打開./bahamut/smali/tw/com/gamer/android/ad/MobileAdView.smali 在裡面找到一行

1
.field private static final API:Ljava/lang/String; = "https://api.gamer.com.tw/mobile_app/ad/v2/mobile_ad.php"

在這邊可以用瀏覽器打開 https://api.gamer.com.tw/mobile_app/ad/v2/mobile_ad.php,會發現是 json 格式的廣告列表修改方式是利用線上服務(gist,pastebin 之類的)來回傳空的廣告列表:

1
{"banner":{},"native_major":{"Android__":[],"iOS__":[]},"native_minor":{"Android__":[],"iOS__":[]}}

我已經用上面的內容新增一個 gist 了,懶得新增可以直接複製: url 然後把剛剛上面那行改成:

1
.field private static final API:Ljava/lang/String; = "空廣告列表的網址"

再來是第二處要修改一樣是在MobileAdView.smali大約 600 多行的地方找到

1
2
3
4
5
6
7
.method public static requestAd(/*這邊省略...*/)V
/*其他程式碼*/
/*在這邊應該能找到下方那一行,這個網址也要改*/

const-string v3, "https://api.gamer.com.tw/mobile_app/ad/v2/mobile_ad.php"

.end method

這邊的改法也是把 api 網址改成空廣告列表的網址

然後再度回到有bahamut.apk的資料夾下執行指令apktool b bahamut -o bahamut_noads.apk 之後就會產生出沒有廣告的巴哈姆特 apk: bahamut_noads.apk 不過這個 apk 因為還沒有簽名所以無法直接安裝(有核心破解就可以跳過簽名的部分)

簽名

已經會幫 apk 簽名的請直接跳過這一部份 為了簡化簽名的方法,這邊會使用第三方工具 uber-apk-signerReleases 頁面選擇最新版的,在下面找到uber-apk-signer-x.y.z.jar下載(x.y.z 是版本號)

然後把下載回來的uber-apk-signer-x.y.z.jar放到與bahamut_noads.apk同個目錄下並改名sign.jar 然後執行指令java -jar sign.jar --apks ./bahamut_noads.apk 最後會得到bahamut_noads-aligned-debugSigned.apk,就可以傳到手機上去安裝 安裝前請務必把原版巴哈姆特 app 移除

關於去廣告

如果可以的話我是希望巴哈能像動畫瘋一樣推出付費去廣告的方法,但是目前(2018/2/5 17:57)還沒有這種方法來去廣告當然如果想要靠看廣告支持巴哈姆特的營運的話可以繼續使用官方 app 而如果和我一樣看到廣告就不舒服的話請自己按照這篇文章的方法去去廣告,我沒有打算開放下載修改後的 apk

更新紀錄

  • 2018/4/11 更新: 巴哈姆特 5.7.5 版有很大的改動,目前最新能修改的版本為 5.7.3
  • 2018/8/20 更新: 修改 Move Certs! 的連結,因為它已經從 Google Play 消失了