萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 手機 >  >> 手機應用 >> Android 教學

Android App 去廣告入門教學:APK 反編譯、搜尋替換廣告 SDK、重新簽名

Android App 內建廣告多為嵌入式廣告 SDK (如 AdMob、廣點通、百度聯盟),通過在主 Activity 動態加載廣告 View。本文以遊戲《Dragon Fly》為例,示範最基礎的去廣告流程:反編譯 → 定位廣告代碼 → 空值替換 → 重新打包簽名。

工具準備

  • APK 反編譯工具:APKTool、dex2jar + JD-GUI、或 Android Studio 內建分析器。
  • 全文搜尋替換工具:Search and Replace (速度快、支援資料夾遞迴) 或 EmEditor。
  • 簽名工具:SignApk、APKSigner、或 Android SDK `apksigner`。

核心原理:定位廣告加載代碼

多數廣告 SDK 在布局 XML 或 Java 代碼中引用特定命名空間/類別。以 AdMob 為例,XML 布局常含:

xmlns:ads="https://schemas.android.com/apk/lib/com.google.ads"

Java 代碼中實例化 `AdView`、呼叫 `loadAd()`。

實戰步驟

  1. 反編譯 APK 獲得 `smali/` 代碼與 `res/` 資源資料夾。
  2. 使用 Search and Replace 對整個專案資料夾搜尋關鍵字:`https://` 或 `schemas.android.com/apk/lib/com.google.ads`。
  3. 搜尋結果中鎖定關鍵檔案:通常為 `AdView.smali` 或包含廣告邏輯的 `*.smali` / 布局 XML。
  4. 編輯該檔案,將廣告相關命名空間字串、URL、初始化代碼 **替換為空字串 `""` 或註解掉**。
  5. 若為 smali 代碼,可將廣告初始化指令 `invoke-virtual` 替換為 `nop` (空操作)。
  6. 重新打包:`apktool b` 生成新 APK。
  7. 簽名:`apksigner sign --ks mykey.keystore --out output.apk unsigned.apk`。
  8. 安裝測試:廣告區域應顯示空白或隱藏,功能正常運作。

進階提示

  • 不同廣告 SDK (廣點通、百度、騰訊優量匯) 關鍵字不同,需多嘗試搜尋 `adview`、`AdView`、`BannerAd`、`SplashAd` 等類名。
  • 部分 App 將廣告邏輯加密/混淆在 `.so` 動態庫中,單純 smali 修改無效,需 Hook (Xposed/Frida) 或修改 .so (極高難度)。
  • 去廣告可能違反 App 用戶協議,僅供個人學習研究,請支持開發者購買付費版或訂閱會員。

掌握反編譯→搜尋替換→重簽名基礎流程,即可自行淨化多數簡單內建廣告 App。

copyright © 萬盛學電腦網 all rights reserved