MapAdKiller

高德、百度、腾讯地图的广告精简与界面定制。

Version libxposed License Telegram 交流群 Telegram 通知频道

当前版本

2.3.5 · versionCode 2305 · 2026-11-11。支持免 root 内置版和现代 Xposed 模块版,各地图单独配置,可备份与恢复。

地图 包名 本轮适配基线
高德国内版 com.autonavi.minimap 17.02.0.2010
高德 Google Play 版 com.autonavi.minimap 17.02.2.2014
百度地图 com.baidu.BaiduMap 22.1.20
腾讯地图 com.tencent.map 11.7.0(6013)

其它地图版本不保证锚点一致。模块最低 Android 8.0,并需要支持 API 102 的框架;内置版使用 LSPatch,需要 Android 9.0 或更高版本,且不能低于宿主自身要求。

2.3.5 更新重点

  • 高德打开就生效:修复部分用户第一次打开地图时,设置已经打开、功能却没有生效的问题。
  • 高德工具宫格不再留大块空白:隐藏的工具会让出位置;底栏全部关闭后,驾车、公交、步行等工具会靠近底部,保留搜索框和系统手势区域。
  • 高德滑动和全屏恢复修复:处理反复上滑、下滑后停在中间,以及点击地图进入全屏后无法恢复的问题。工具宫格关闭再打开,也会重新显示并同步高度。
  • 高德开屏广告拦截补齐:同时处理新请求和已经缓存的开屏广告;保留正常进入地图的流程。默认开启,之前手动关闭的选择不会被覆盖。
  • 高德、腾讯新增九类地图标注开关:餐饮、购物、医疗、学校与科教、交通、住宿、景点与休闲、金融、生活服务可以分别选择。腾讯的学校类别补齐教学楼等教育图标。
  • 腾讯功能加载更稳定:修复部分热更新后,开关有显示但实际没有生效的问题。腾讯主页分类可在运行中调整;搜索和导航使用原生标注样式。
  • 所有版本同步到 2.3.5:模块、高德国内/Play、百度和腾讯内置版统一版本。百度保留上一版的我的页等修复,本次同步版本号与共享代码,没有另加未经验证的新功能。

高德标注分类的用法:先打开“兴趣点”总开关,再选择需要显示的类别,修改后强制停止并重开高德。总开关关闭时仍是全部隐藏。分类只处理已识别的业务标注,通用楼宇、未知图标等可能保留。

详细说明见 2.3.5 更新说明、测试记录 和 更新日志。Kotlin 主源码迁移、设置 UI 重构和导航栏缩放由 2.3.3 引入,2.3.5 继续保留。

下载

统一从 v2.3.5 Release 下载。模块仓库另提供 模块版 2305-2.3.5。

文件 安装方式
MapClean-lsp-v2.3.5.apk 模块版:配合 LSPosed / 支持现代 API 102 的框架,三家地图共用
Amap-2.3.5-nonroot-embedded.apk 免 root:高德国内版单 APK
Baidu-2.3.5-nonroot-embedded.apk 免 root:百度单 APK
Tencent-2.3.5-nonroot-embedded.apk 免 root:腾讯单 APK
Amap-Play-2.3.5-nonroot-embedded.zip 免 root:高德 Play 拆分包,四个 APK 一起装
MapAdKiller-2.3.5-source.zip 源码及编译依赖,不含签名私钥和地图原始 APK
SHA256SUMS.txt 下载文件 SHA-256 校验值

模块版与内置版选择一种。 模块 APK 约 5.4 MiB;内置版包含完整宿主,体积明显更大。模块依赖框架注入,不重新签名官方地图;内置版是重新签名的地图安装包,不需要框架。不要对内置地图重复启用外部模块。

安装与升级

模块版

  1. 安装 MapClean-lsp-v2.3.5.apk。
  2. 在框架中启用模块,勾选需要处理的地图作用域。
  3. 强制停止并重新打开对应地图。可以打开模块 App 配置,也可以从地图里的悬浮球进入面板。

模块沿用原发布证书,旧模块可覆盖升级。框架未连接时先检查作用域、API 102 支持及目标地图是否正在运行。

免 root 内置版

  1. 先备份模块配置、登录相关资料与离线数据,再选择对应地图内置包。
  2. 官方地图与内置版签名不同,不能直接覆盖;切换版本前确认备份,卸载会清除应用数据。同项目同签名内置版通常可覆盖更新。
  3. 安装后打开地图,通过悬浮球或长按底部“我的”约 1 秒进入设置。

高德国内版和 Play 版包名相同,只能装一个。Play ZIP 解压后四个 APK 一起安装,不能只装 base.apk;可用拆分包安装器,或在解压目录执行:

adb install-multiple -r base.apk split_config.arm64_v8a.apk split_config.xxxhdpi.apk split_config.zh.apk

内置版签名与官方不同,可能影响系统校验、支付/账号联动、系统卡片或厂商服务;模块版也需按机型验证这些功能。不要把模拟导航或静态策略测试当作真实支付、车机、OEM 联动的完整验收。

高德首次抓取官方数据

工具宫格、首页卡片和底栏使用官方下发配置。2.3.5 首次打开也会加载已开启的功能,不再因为缺少旧数据或升级而自动切换到采集模式。遇到图标缺失、入口不全时,可以在设置里手动点“重新抓取官方数据”;采集结束后重开地图。

设置入口与功能

模块 App 提供“首页、配置、备份、关于”。配置页按地图切换,支持分组与搜索;三家地图的开关独立,备份页支持 JSON 导入/导出。

地图内面板提供首页、工具、内容、地图、我的、底栏、省电、其他、外观等分类,具体以目标地图为准。高德有横屏导航栏缩放与巡航速度/持续时间设置;百度有通勤与原生工具布局;腾讯标注分基础与丰富/3D 图层。

悬浮球与面板可以调整大小、宽度和透明度。“关闭悬浮窗”会保存关闭状态,关闭面板的 × 仅收起面板;需要再次进入时可长按“我的”。

按每项说明判断生效方式:导航缩放、腾讯主页标注等支持运行中应用;省电/后台等在安装 hook 时决定的选项、实验 native 补丁,需强停重开。地图更新可能改变配置和锚点,遇到异常先关闭相关选项并提供版本和复现步骤。

省电与后台设置的影响

推送长连接、消息处理、后台任务、埋点、桌面小组件及第三方标注过滤等有独立开关。面板中“关闭/拦截”类选项开启表示阻止对应行为,关闭表示放行原生行为,请阅读说明再调整。

拦截推送可能影响行程提醒、消息和家人地图通知;拦截小组件刷新可能影响桌面卡片。需要系统通知、卡片或设备联动时,先放行有关项目并重开地图。第三方标注过滤及建筑/帧率选项具有版本和性能边界,不适用于所有机型;本版本不作零耗电、零掉帧或安全软件绝不误报的承诺。

已知限制与验证边界

  • 灵动岛:已修正部分误拦截,但 HyperOS 高德导航通知存在时系统卡片仍未显示;ColorOS 和手表联动尚未完成实机验证。
  • 百度打车支付:针对浮层和通知路径作兼容修正,无待支付订单,微信/支付宝点击无响应尚未确认根因及完整修复。
  • 标注分类:2.3.5 的分类开关只过滤已识别的原生业务样式;未知样式、通用楼宇及特殊运营标注可能保留,不按地点文字或邻近位置猜测类别。高德分类需重开地图,腾讯主页分类支持运行中应用。
  • 导航/巡航:横屏模拟导航与定位回放已验证;未完成真实道路和所有车机的驾驶验证。请在安全停车状态调整设置。
  • 高德语音搜索:兼容选项的首轮展开已验证,重复唤起与完整识别仍待验证。
  • POCO F3 安装:标准 ZIP 布局已完成解析和结构检查,但尚无该 ARM 机型安装验收结果。
  • 腾讯底栏:逐项入口设置需重新打开地图,让宿主重新绑定。
  • Play 版:独立构建、四包签名/结构及功能 DEX 对照通过;本轮未重新安装 Play 整包逐项实机测试。
    • 百度部分详情页推荐/FAQ/团购横幅仍有未覆盖路径;高德启动品牌 Logo 的独立跳过仍未解决,广告请求和缓存广告拦截已纳入 2.3.5 测试包。首页原生工具宫格最多两行,更多入口请使用“更多工具”。

构建、反馈与交流

感谢 libxposed、LSPosed / LSPatch、Kotlin 及相关开源项目。项目代码按 GPL-3.0-or-later 发布,依赖遵循各自许可证;内置包附 LSPatch 许可和来源说明。地图商标、数据、素材和原应用代码属于各自权利人;地图账号、支付与其它服务仍受原应用及服务条款约束。

Releases

11/10/2026, 6:35:24 PM

MapAdKiller 2.3.5

发布日期:2026-11-11 · 模块版本号:2.3.5 / 2305 · 对比上一版:2.3.4。

这次主要解决高德首页留白、滑动和全屏恢复问题,补齐开屏广告拦截,并给高德、腾讯加入按类别显示地图标注的设置。模块版、国内内置版、Play 内置版、百度和腾讯全部同步更新。

高德:工具能靠底,收起后也能恢复

  • 修复第一次打开时,明明开了设置,功能却没有生效的情况。现在首次进入也会正常加载功能。
  • 隐藏部分工具后,其它工具会按剩余位置排列,减少空格和空行。
  • 底栏全部关闭后,驾车、公交、步行等首页工具会靠近底部,不再为已经隐藏的底栏空出一大块位置。搜索框和系统手势区域会保留。
  • 修复反复上滑、下滑后,面板停在中间、留下空白的问题。
  • 修复点击地图进入全屏后,再点击无法恢复,以及工具宫格关闭后再打开只剩搜索框的相关问题。
  • 补齐开屏广告的缓存和请求拦截,避免之前下载过的开屏广告再次出现。默认开启;如果你之前手动关闭过,仍保留你的选择。

国内版和 Google Play 版使用同一套功能修复,安装包分别制作。

高德、腾讯:地图标注可以按类别选择

可以分别选择这九类标注是否显示:餐饮、购物、医疗、学校与科教文化、交通、住宿、景点与休闲、金融、生活服务。

  • 高德:先打开“兴趣点”总开关,再调整分类。改完后强制停止并重开高德。关闭总开关仍表示全部隐藏。
  • 腾讯:分类在主页生效,可在运行中调整;进入搜索、导航后恢复原生标注样式。
  • 腾讯“学校与科教”补齐教学楼等教育图标,不只处理学校名称。
  • 尽量保留路名和其它正常地图内容。分类依据地图原生样式,通用楼宇、未知图标或特殊运营标注可能保留,不能保证所有地点都能准确归类。

同时修复腾讯部分热更新后,设置看似开启、实际没有生效的问题。

百度与模块版

  • 百度内置版也同步到 2.3.5,设置面板显示新版本号,保留上一版我的页独立开关、工具宫格和配置刷新等修复。
  • 模块与内置版同步相应地图的修复,继续保留导航信息栏大小调整、自动巡航等已有功能。
  • Kotlin 主源码迁移、设置 UI 重构、导航栏缩放是 2.3.3 引入的已有功能,本次不重复算作新增。

下载哪个文件

文件 用途
MapClean-lsp-v2.3.5.apk 模块版,三家地图共用,需要支持现代 API 102 的框架
Amap-2.3.5-nonroot-embedded.apk 高德国内 17.02.0.2010 内置版,无需 root
Amap-Play-2.3.5-nonroot-embedded.zip 高德 Google Play 17.02.2.2014 内置版,解压后四个 APK 一起装
Baidu-2.3.5-nonroot-embedded.apk 百度 22.1.20 内置版,无需 root
Tencent-2.3.5-nonroot-embedded.apk 腾讯 11.7.0(6013)内置版,无需 root
MapAdKiller-2.3.5-source.zip 源码与编译依赖,不包含地图原包和签名私钥
SHA256SUMS.txt 下载文件的 SHA-256 校验值

模块版与内置版选一种即可,不要重复启用。 高德国内版和 Play 版包名相同,只能装一个。

更新时注意

  1. 先备份配置和个人数据。同项目、同签名内置版通常可以覆盖更新;官方版与内置版签名不同,不能直接覆盖,卸载会清除应用数据。
  2. 更新后强制停止对应地图,再打开一次。百度需要重开以替换旧页面脚本。
  3. Play 包必须四个 APK 一起安装,不能只装 base.apk。可用拆分包安装器,或执行:
adb install-multiple -r base.apk split_config.arm64_v8a.apk split_config.xxxhdpi.apk split_config.zh.apk

地图本身的版本号仍是上表中的官方基线;2.3.5 是 MapAdKiller 的功能版本,可在模块或地图内设置面板查看。

仍需要继续反馈的地方

  • 灵动岛:HyperOS 的高德系统卡片仍有未解决反馈,ColorOS 未完成实机验收,本版不承诺全部恢复。
  • 百度打车支付:目前没有可复现的待支付订单,不能宣布微信、支付宝点击无响应已经彻底修复。
  • POCO F3 / MIUI 14 / Android 13 的安装问题仍需该机型反馈。
  • 车机、真实道路巡航及所有系统、地图版本无法在一台手机上全部覆盖。具体测试范围见 测试记录。

遇到问题请带上地图版本、手机系统、使用模块还是内置版、相关开关和复现步骤。截图与日志公开前请去掉个人信息。

本仓库只提供模块 APK;各地图内置版和源码请到 主仓库 v2.3.5 Release 下载。

Assets

2

11/8/2026, 4:07:39 PM

本发布提供 LSPosed / 现代 API 102 模块。免 root 内置包、高德 Play 分包、源码及完整校验值见 主仓库 v2.3.4。

MapAdKiller 2.3.4

发布日期:2026-11-08 · versionCode 2304 · 对比基线:2.3.3。

本次集中修复“开关单独启用无效、关闭后恢复不完整、不同构建行为不一致”等问题。模块版、高德国内内置版、高德 Play 内置版、百度内置版和腾讯内置版同步更新。Kotlin 主源码迁移、设置 UI 重构和导航缩放由 2.3.3 引入,本次延续,不重复作为新增功能。

相比 2.3.3 的修复

高德国内版与 Google Play 版

  • 修复底栏开关无效及切换后白屏的相关路径:保留原生完整标签模型和控制器,只改变可见入口;恢复标签原有可见状态,不再通过删减模型破坏原生索引与路由。
  • 隐藏当前选中的打车或我的入口时,安全返回首页;修正入口 ID 与控制器对应关系,保留再次开启及冷启动行为。
  • 首页设置接入统一的配置监听及失效路径,补齐模块 App 修改、批量恢复后已缓存视图不刷新的情况。
  • 工具宫格只恢复本模块修改过的原始可见状态,不把宿主原本隐藏的项目强行显示;导航缩放刷新在宿主尚未初始化时安全退出。
  • 高德内置包改用标准 ZIP 布局改善“首次安装提示套件无效”的兼容性,包体有所增加。POCO F3 / MIUI Global 14 / Android 13 尚待该机型安装反馈,不宣称已完成机型验收。

百度地图

  • 修复我的页卡片开关相互牵连和单独打开顶部图标宫格无效:改用页面私有渲染列表,保留原始 cardList、服务器数据与页面头部;支持八项子开关组合和页面内恢复。
  • 移除旧的共享数据修改与全局数组原型过滤实现;同时适配已取得的旧 userCenter 编译模板和新 userCore 页面模板,未知结构原样放行。
  • 我的页、通勤卡片、工具宫格使用同一配置刷新入口,补齐外部模块配置回调、本地写入及批量恢复的刷新遗漏。
  • 底栏隐藏时保留原生点击、触摸监听及触摸代理,仅改变本模块拥有的可见/启用状态;修复重新开启语音入口后无法恢复原生触摸处理的路径。
  • Talos 页面脚本与地图样式缓存按实际内容识别更新,不再错信相同文件长度或修改时间。

腾讯地图

  • 首页快捷入口重新开启时,恢复原生行高和历史行高,通过宿主真实 setter 重新计算布局;恢复失败保留状态以供重试。
  • 底栏过滤使用私有列表副本,不原位删除宿主缓存;未知新标签默认保留,防止新入口被误隐藏。
  • 底栏、通勤及首页卡片只恢复本模块修改过的原始状态,尊重宿主原本的 INVISIBLE / GONE 及后续修改。
  • 修复 Android 13 上腾讯反射辅助类使用 java.lang.ClassValue 导致加载失败,改用兼容的弱键/弱值缓存,并避免持有宿主类加载器。
  • 腾讯底栏逐项入口仍需重新打开地图,让宿主重新绑定;主页标注范围仍包含 POI、路名与地名,不是任意 POI 分类过滤器。

共享代码与构建

  • native 库提取缓存按 SHA-256 内容识别,校验已有文件内容;覆盖等长更新与等长缓存损坏场景。
  • 修复 DEX 锚点工具漏识别构造器、查询失败未明确传播的问题,避免错误的“缺少锚点”或误判通过。
  • 增加跨模块回归台账、独立生产 DEX 测试入口及对应缺陷测试;源码包同时包含这些测试及所需编译依赖。

验证范围

  • 完整模块 27 组、8599 项检查通过。
  • 解出完整模块及四类内置包中的真实生产模块,在 Android 13 和 Android 16 各执行 60 组,共 120 组生产 DEX 回归通过;测试 DEX 与生产 DEX 分离,避免测试副本覆盖生产实现。
  • 百度两代真实页面模板分别通过完整模块和内嵌模块适配:四份 JS 运行合计 9293 项检查通过;256 种卡片组合、动态恢复、生命周期及原始数据身份纳入回归。
  • 高德国内/Play 功能 DEX 一致,宿主补丁和签名分别校验;最终模块及各宿主检查版本、签名、ZIP、内嵌模块和功能裁剪。
  • 最终完整模块、国内高德、百度、腾讯在测试手机覆盖安装成功,三个地图正常启动;百度首页与我的连续两轮往返正常,当前开关选择保留。
  • 以上不等同于所有官方宿主的外部 LSPosed 注入、全部机型或所有 UI 场景验收。详细证据及边界见 验证说明 和 回归台账。

下载与升级

文件 用途
MapClean-lsp-v2.3.4.apk LSPosed / 现代 API 102 框架模块,三家地图共用
Amap-2.3.4-nonroot-embedded.apk 高德国内版 17.02.0.2010 内置版
Baidu-2.3.4-nonroot-embedded.apk 百度 22.1.20 内置版
Tencent-2.3.4-nonroot-embedded.apk 腾讯 11.7.0(6013)内置版
Amap-Play-2.3.4-nonroot-embedded.zip 高德 Play 17.02.2.2014,解压后四个 APK 一起安装
MapAdKiller-2.3.4-source.zip 项目源码及必要编译依赖,不含地图原包、个人配置或签名私钥
SHA256SUMS.txt 发布附件 SHA-256 校验值

模块沿用原发布证书;同项目、同签名内置版通常可以覆盖升级。官方地图与内置版签名不同,切换前先备份配置与个人数据,卸载会清除应用数据。模块版与内置版选择一种,不要对内置地图重复启用外部模块。

百度更新后请强制停止并重新打开一次,以替换旧页面脚本。腾讯底栏逐项设置也需重新打开地图。高德国内版与 Play 版包名相同,只能装一个;Play 包不能只安装 base.apk,可用拆分包安装器,或在解压目录执行:

adb install-multiple -r base.apk split_config.arm64_v8a.apk split_config.xxxhdpi.apk split_config.zh.apk

仍待实际验收

  • HyperOS 灵动岛仍未显示,ColorOS 未实机验收;本次不将灵动岛列为已修复。
  • 无可复现的百度待支付订单,微信/支付宝真实跳转尚未完成验收。
  • POCO F3 / MIUI Global 14 / Android 13 安装反馈仍待确认。
  • 最终 Play 包完成生产 DEX 回归与结构/签名校验,未再次替换测试手机上的国内版作整包 UI 走查;外部模块在各官方宿主的完整 UI 验收也未全部完成。
  • 真实车机/道路巡航、高德语音搜索重复唤起与完整识别、部分百度详情页推广及高德开屏 logo 等既有未覆盖路径仍需继续反馈。

反馈请提供地图与系统版本、模块/内置方式、开关状态及复现步骤。日志公开前请去除账号、位置、订单和支付信息。

Assets

2

11/8/2026, 1:00:25 PM

本发布仅提供 LSPosed / 现代 API 102 模块。免 root 内置包、高德 Play 拆分包、源码及校验值请见主仓库:https://github.com/ldxm666/MapAdKiller/releases/tag/v2.3.3

MapAdKiller 2.3.3

发布日期:2026-11-08 · versionCode 2303 · 对比基线:2.3.2 / 2.3.2-play。

本次重点是应用主源码 Kotlin 迁移、设置 UI 重构、高德横屏导航信息栏自定义大小、巡航触发修正,以及三家地图的配置与界面兼容性修复。

相比 2.3.2 的变化

Kotlin 主源码迁移与设置 UI

  • app/src 从 2.3.2 的 152 个 Java、0 个 Kotlin,迁移为 172 个 Kotlin、0 个 Java。测试、编译桩及部分工具仍保留 Java;“全面迁移”指应用主源码,不代表整个仓库没有 Java。
  • 重构模块 App 与地图内设置面板:统一配色、字重、行高、圆角和间距,采用参考 Miuix / HyperOS 视觉规范的原生 Android View 实现;新增胶囊式导航、分段标签、弹窗及按压/切换反馈。不是 Jetpack Compose 迁移。
  • 修复分段控件测量反复触发布局、弹窗标题与动画不一致等问题;百度、腾讯面板按内容计算高度,减少遮挡和空白。
  • 修复现代框架服务接口类打包不完整引起的连接问题;修正本地/远端配置的读写优先级和缺省值迁移,保留用户明确设置。
  • 修复百度、腾讯关闭悬浮球后冷启动又出现的问题,已保存的关闭状态继续生效。

高德:导航、巡航与打车

  • 新增横屏导航信息栏缩放:100%–200%,每档 10%。 可在设置中调整;按可用空间约束大小,兼顾文字和图标,路口放大图显示时恢复原生布局,结束后重新应用缩放。国内版与 Play 版使用各自校验过的锚点。
  • 优化自动巡航触发:修正首次有效位移延后到达时的计时窗口;重复缓存定位不再推进触发计时;调整速度读取顺序,并兼容新版原生巡航状态。官方巡航开关支持运行中更新,一次性探测及时结束,重诊断仅在调试时运行。
  • 移除打车面板拖到中间才出现的顶部活动横幅,同步收起占位;修正打车营销数据字段和活动专区映射。只处理打车首页推广区域,保留上车点、目的地、订单、安全与合规内容。
  • 修复内置版覆盖升级后可能白屏的原生库路径/依赖加载问题。
  • 增加 17.02 语音搜索兼容选项;首轮展开已验证,重复唤起和完整识别流程仍需继续反馈。

百度:工具、通勤与支付兼容性

  • 首页工具宫格按原生数据排列为每行 5 项,保留原生点击和入口模型;修复抽屉高度、预览重叠与多余空白,保留原生底部导航。
  • 修正“回家/公司”子开关与总开关的联动,恢复开关后可重新显示;沿用原生地址控制器及地址管理入口,不改写收藏与历史记录。
  • 支付兼容策略避让官方收银台,减少模块浮层干扰;增加按阶段定位跳转问题的调试信息,不输出账号、订单或支付链接。目前没有可复现的待支付订单,不能据此宣布微信/支付宝点击无响应已经修复。

腾讯:标注开关真正可恢复

  • 完善主页基础标注的隐藏/恢复,兼容引擎稍后创建、引擎替换、搜索返回、冷启动等情况;失败后有限次重试,页面退出取消过期任务。
  • 保存原生图层状态后恢复,保留其它图层位及原生隐藏状态,避免成为“一关就再也回不来”的死开关。
  • 明确设置范围:当前原生基础标注位会同时影响 POI、路名和地名,只在主页应用;丰富/3D 图层分开控制。它不是只隐藏商户、保留所有路名的逐类 POI 过滤器。
  • 修正工具栏、收藏入口与设置面板的布局及切换状态。

系统卡片 / 灵动岛兼容性

  • 撤除对高德桌面卡片服务及卡片初始化、百度通知服务的误拦截;百度桌面广播只匹配明确的标准 action,保留 OEM 扩展 action 和数据。
  • 这只是误拦截修正,不是灵动岛完整适配承诺。 HyperOS 实机已确认高德原生导航前台通知存在,但系统灵动岛仍未显示;ColorOS 暂无实机验收,手表联动也未做完整验证。

构建与验证

  • 模块、三个国内内置包、高德 Play 拆分内置包来自同一套 2.3.3 源码;内置包只裁掉其它地图实现,构建时检查必须保留的功能类、宿主白名单和注入入口。
  • 20 组 Android 回归全部通过,共 5939 项检查,覆盖打车字段、横幅策略、导航缩放、巡航回放、配置、支付避让、系统卡片策略及腾讯标注状态机等。
  • 对发布内置包解出的生产模块另做 7 组、1030 项检查,避免只测开发副本;国内/Play 高德的功能 DEX 一致,宿主补丁分别构建和校验。
  • 腾讯标注已在免 root 内置版与真正 LSPosed 模块版验证多次开关、冷启动、搜索返回;高德导航已在 2400×1080 横屏模拟导航验证 100% / 160% / 200% 及路口图切换。巡航有定位回放测试,不能替代真实道路、车机和长期行车验证。
  • 最终二进制检查版本、签名、ZIP 完整性、注入元数据和宿主内嵌模块;模块沿用原发布证书。详细边界见 验证说明。

下载与升级

文件 用途
MapClean-lsp-v2.3.3.apk LSPosed / 现代 API 102 框架模块,三家地图共用
Amap-2.3.3-nonroot-embedded.apk 高德国内版 17.02.0.2010 内置版
Baidu-2.3.3-nonroot-embedded.apk 百度 22.1.20 内置版
Tencent-2.3.3-nonroot-embedded.apk 腾讯 11.7.0(6013)内置版
Amap-Play-2.3.3-nonroot-embedded.zip 高德 Play 17.02.2.2014,解压后四个 APK 一起安装
MapAdKiller-2.3.3-source.zip 经过白名单整理的项目源码及编译依赖,不含地图原始包和签名私钥
SHA256SUMS.txt 发布文件校验值

模块与内置版选择一种使用。官方地图与内置版签名不同,切换前先备份配置和个人数据;同项目、同签名版本通常可以覆盖升级。国内/Play 高德包名相同,只能安装其中一个。Play 包请使用拆分包安装器,或在解压目录执行:

adb install-multiple -r base.apk split_config.arm64_v8a.apk split_config.xxxhdpi.apk split_config.zh.apk

3D 建筑隐藏、60/90/120 帧率选项和首次 Play 适配已在 2.3.2 系列提供,本次为延续与兼容修正,不作为 2.3.3 首次新增宣传。

仍需关注

  • 无真实待支付订单,百度微信/支付宝支付跳转尚未完成用户场景验收。
  • HyperOS 灵动岛仍未显示、ColorOS 未实机测试,不建议仅为灵动岛功能升级。
  • 腾讯主页基础标注会连同路名/地名一起隐藏,不能进行任意 POI 分类筛选。
  • 高德 Play 本轮完成独立构建、拆分校验和功能 DEX 对照;本轮未在手机重新安装 Play 整包逐项走查。
  • 高德语音搜索重复唤起/完整识别、真实车机驾驶与巡航灵敏度仍需补充验证。
  • 百度部分详情页推荐/FAQ/团购横幅,以及高德开屏 logo 图层问题仍有未覆盖路径。

反馈请附地图版本、系统型号与版本、模块/内置方式、开关状态及可复现步骤。日志发出前请去除账号、位置、订单和支付信息。

Assets

2

11/6/2026, 3:39:31 AM

MapAdKiller 2.3.2 (versionCode 2302)

本仓库仅发布 LSPosed 模块版。

新增

  • 高德「去除 3D / 扁平建筑物」(实验,默认关):native 改写 libamapr.so 虚表项,补丁前双重自检,不匹配则不写内存、只记日志,高德零崩溃。已按 17.02.0.2010 重定位全部偏移
  • 高德「帧率上限 60 / 90 / 120」(实验,默认关)
  • 三端强制去除版本更新检查与弹窗,默认生效、无开关
  • 开屏广告拦截默认开启

修复

  • 百度逐类 POI 开关全部失效(分类决策早于配置就绪 3.1 秒)
  • 百度详情页白屏(缓存键改内容指纹 + 原子发布 + 失败降级原模板)
  • 独立 App 开关写不到内置版宿主(新增内置版检测,命中即整页置灰)
  • 腾讯 6013 去更新改在 AppUpgradeInfo / AppUpgradeDialog 层

已知未解决

  • 百度 22.1.20 详情页三块推广不走已 hook 的数据通路(七张卡片名逐个屏蔽、五次截图无变化)
  • 高德开屏 layer-list 两个 logo 图层未上屏(已排除系统 SplashScreen)

校验

sha256 947e7ae8bd116ddc9d3cfeb2721482e323908415b2d3c65eaecc922d47df1b17  MapClean-lsp-v2.3.2.apk

源码:https://github.com/ldxm666/MapAdKiller

Assets

1

11/3/2026, 8:27:12 AM

MapAdKiller 2.3.1 (versionCode 2301)

本仓库仅发布 LSPosed 模块版。

修复

  • 高德冷启动 6.5 秒 → 1 秒以内:根因是本模块自身的 hook 无限递归 —— k84.f() 经 AmapData.defaultSlot 反射回调自身,递归约 2000 层,每层重解析 5.5KB JSON,涨到 StackOverflowError 被吞掉才停。onCreate 6538ms → 127~659ms
  • 高德开屏页恢复显示:此前误当广告拦截。SplashActivity 是 activity-alias,白底来自主题,属高德自身界面
  • 百度配置无法保存(三次反馈):读路径把只读 remote 永久定案 / DefaultConfig 空桩早退 / invalidate() 不重置后端,三处全修,写路径增加回读自校验
  • 腾讯悬浮球消失:浮层挂在首启 WelcomeActivity,页面结束即销毁 → 改为跟随所有 Activity 并加布局哨兵
  • 腾讯面板「只读」:Vendor.host 被非地图包名覆盖 → 白名单 + 定案不改写
  • 腾讯配置双存储:Context 探测统一为「直给优先」
  • 全新安装默认不干净:JSON 缺键 + 兜底硬编码 true → JSON 补齐 + Spec/Cfg 兜底对齐 + _defaults_rev 迁移(只填缺失键)

新增

  • 服务器公告通道:远程推送、首次必弹可关闭、自绘浮层(无宿主主题黑边)、HMAC 校验、分档节流
  • 「检查更新」改从自有服务器读取,不再依赖 GitHub
  • HookGuard 单 hook 连续失败自动停用;Perf 全 hook 计时

变更

  • 百度地点详情页 17 类推广位清理(数据层摘卡,不留白),各块独立开关
  • 百度面板重排 6 chip;赞赏支持点击区 48dp;抓取收尾提示与自动退出
  • 腾讯性能:视图树转储收进 debug(日志 -80%);悬浮钩子只装主进程(3 → 1);哨兵 250ms 节流

已知未包含

  • 首页工具面板紧凑排列(原方案会压塌布局,已回退)
  • 腾讯 40fps 上限未动(实测官方原版 39.4fps / 内置版 40.7fps,上限来自 SDK 自身 limitFrame)

校验

sha256 868b982e7c5ae7e91defa8b825e9b3cfdaf1e936d23d7f7b47a740cce40cb370  MapClean-lsp-v2.3.1.apk

源码:https://github.com/ldxm666/MapAdKiller

Assets

1

2.2.8

Stable

10/28/2026, 12:37:21 PM

2.2.8(versionCode 2280)

  • 修复百度路线页「开始导航」被连带隐藏(底栏不再参与收壳)
  • 修复百度面板「只读 · 无法写入配置」误报
  • 修复百度内置版日志抓取按钮无反应
  • 高德自动巡航触发值可调(触发速度下限 2–30 km/h、持续时间 2–30 秒),面板与模块 App 互通
  • 巡航距离与精度门槛随触发速度自适应,走路也能触发
  • 抓取完成提示只弹一次
  • 模块 App:已安装应用排前、未安装行不再显示固定推荐版本、三行显示原生图标

Assets

1

2.2.7

Stable

10/27/2026, 2:58:47 PM

2.2.7(versionCode 2270)

  • 百度地图适配 22.1.0(1660),锚点全表重测
  • 修复百度首页整页白屏、搜索框下方快捷入口开关失效(首页收起态 + 搜索页两处)
  • 百度路线页横幅广告断源且不留白;「探索周边」「特惠打车」独立开关
  • 修复百度进入地铁规划闪退
  • 百度地图 POI 支持按 13 个类型分别关闭
  • 高德:修复隐藏工具栏连带隐藏「设置家 / 单位」,巡航更灵敏,新增自动抓取钩子与日志抓取

Assets

1

2.2.6

Stable

10/26/2026, 5:40:12 PM

2.2.6 (2260)

修复

  • 首页工具宫格第二行图标顶部被裁切:宿主「行」容器比格子内容矮 17 px 且默认裁剪 → 关闭 clipChildren,第 2 行补 10dp 上边距(行距 15 px → 33 px)。
  • 宫格槽位修正为 两行 10 个,第 11 个不再被挤成第三行压到「回家 / 去单位」。
  • 面板与设置页版本号显示 v2.2.6,不再显示「定制版」。
  • 首次抓取弹窗重复(旧「立即重启」弹窗已删除,统一由 CaptureGate 负责)。
  • 兜底抓到空壳基线不再永久跳过:文件数不足 20 个直接丢弃、下次启动重抓。

变更

  • 首页工具宫格、设置家 / 单位 / 常去地点全部改回高德原生渲染,不再自绘。
  • 删除「打车运营卡」「去哪里打车」两个无效开关(后端保留,界面无入口)。

首次启动(全自动)

  • 第一次打开是纯原生地图(除悬浮窗外不装任何 hook),后台抓完全量官方下发数据后弹「✓ 已获取官方数据」,5 秒后自动退出并重启,重启后即按设置生效。
  • 采集模式保留悬浮窗:面板「首页」页顶部三态提示条(红:待抓 · 黄:抓取中 · 绿:已抓完,点一下重启启用)就是入口。
  • 首页 90 秒内没出现(隐私弹窗、网速慢)就退出采集、模块继续不启用,下次打开继续抓。
  • 内置版装好后第一次点开可能闪退一次(LSPatch 首次解包宿主),再点一次桌面图标即正常。
  • Android 14+ 若拦截后台自启,点一下桌面图标即可,基线已就绪、启动即生效。

注意

  • 工具宫格最多两行(10 个),超过会溢出,更多入口请用「更多工具」。

完整说明:https://github.com/ldxm666/MapAdKiller/releases/tag/v2.2.6

Assets

1

2.2.5

Stable

10/26/2026, 11:22:59 AM

2.2.5

  • 其他软件跳转高德,直接进入路线规划页(含微信 wechatnav 起点/终点混淆修复)
  • 首页工具栏改用高德原生图标;文字修复(旧版深色模式白字打白底,完全看不见)
  • 底部栏只剩「首页」时整条自动隐藏
  • 新增:自动进入巡航(模块接管,默认关闭)—— 高德自带开关是死开关
  • 新增:主页「赞赏支持」入口、每版本首启 3 秒提示
  • 优化:未安装的地图 App 收起成一行(原生图标 + 红色未安装标记);功能页分组默认收起
  • 实验:搜索页金刚位开关(默认关闭;开启后会闪一下并留一条空白)

内置版:高德 2.2.5 免 root 内置版暂未发布(优化中),请先用 2.2.4。

  • 新增:首页快捷入口(chips)支持点击与刷新
  • 新增:设置页「通知频道」入口,发版公告与重要通知走 TG 频道
  • 通知频道:https://t.me/MapAdkillerr (只发版公告,不打扰)
  • 交流群:https://t.me/MapAdkiller (问题反馈、使用交流)

Assets

1

2.2.4

Stable

10/21/2026, 11:09:32 AM

2.2.4

  • 高德工具栏修复:首页工具行改为模块自绘网格,5 个一行、按开启数量自动多行;
    开关与图标严格一一对应,不再受宿主 5 格限制
  • 高德/百度/腾讯:三家设置独立配置页,支持直接导入导出 .json
  • 深色模式修复:窗口/页面底色、玻璃卡片、描边全部随夜间模式切换
  • 百度原生版实测:93 个 hook、18 个省电 hook、15 个 ADN loader,0 miss;
    AOT 后冷启动 2.5–2.8 s,稳态掉帧 0.83%
  • 底部四页标签栏、滑动切页、纯白玻璃视觉

内置版:高德 2.2.4 免 root 内置版(本次附带);百度内置版见 2.2.3-step2。

Assets

1

10/21/2026, 9:12:00 AM

2.2.3-step2

模块版:

  • 全新四页底部标签栏(首页 / 配置 / 备份 / 关于),支持左右滑动切页
  • 顶部状态信息整体移入首页;首页新增推荐版本、GitHub / Telegram 入口
  • 三家地图设置收进「配置」;删除无用的说明卡
  • 备份页支持直接导入 / 导出 .json(系统文件选择器,先预览后写入)
  • 纯白背景 + 白玻璃卡片(AndroidLiquidGlass 分层:高光 / 内阴影 / 对比描边)
  • 翻页阈值 12%,拖动不再逐帧缩放;修复刷新图标
  • 百度原生版实测:93 个 hook、18 个省电 hook、15 个 ADN loader,0 miss

百度免 root 内置版:随附(高德版此前已发布,本次不重复)

深色模式修复(本次替换):窗口/页面底色跟随夜间模式;玻璃卡片改为深色渐变(不再把 tint 混白成灰);描边与高光改为暗色对比;版本指标不再被截断。

Assets

1

2.2.2

Stable

10/20/2026, 8:21:01 AM

v2.2.2(versionCode 222)— 长按「我的」开面板 + 「省电 / 后台」整组

发布日期:2026-10-20。版本码:222。基线 v2.2.1(版本码 221)。

这一版把面板从「打开模块设置页」改成了「长按地图底部『我的』标签直接唤出」,并把此前分散在各处的后台省电项收成一组,普通用户不需要懂任何技术名词就能用。

新增

  • 适配高德地图 17.02.0.1541。首页、工具宫格、地图标注、搜索栏等各分组开关随新版本重新校验过。
  • 新增「省电 / 后台」整组(11 项 + 一键省电),模块版设置页同步出现同一组:
    • 推送:关闭推送长连接(ACCS,省电最多)/关闭推送消息处理/关闭推送服务壳(激进)。
    • 后台任务:关闭周期任务(WorkManager / JobScheduler)/关闭子进程拦截(总闸,排查用)/关闭桌面小组件刷新/关闭云控调度池(LotusPool)。
    • 埋点与广告:关闭阿里埋点 Analytics/关闭开屏广告请求/关闭广告曝光上报。
    • 地图:启用第三方标注过滤(默认关闭,开启后可能影响帧率)。
    • 顶部「一键省电(全部开启拦截)」一次写入 9 项,不含「子进程拦截」总闸与「第三方标注过滤」。
    • 语义统一为「开 = 该行为已被拦截」,默认全开;关掉即恢复原应用行为。本页改动需强制停止并重开目标 App 才生效。
  • 面板顶部新增版本胶囊:绿色表示已是最新;红色并挂「新版本」小标表示有新版本可用,点它可直达下载。
  • 新增每日自动检查更新:24 小时节流,每个新版本只提示一次;并接入国内镜像源(gh-proxy.com / gh.llkk.cc / ghfast.top / ghproxy.net / jsDelivr),无 VPN 也能查到新版本。查到新版本后出现「镜像下载」按钮。
  • 新增「外观」页 4 个滑块:悬浮球大小 3672dp(默认 46)、悬浮球不透明度 30100%(默认 100)、面板宽度(自动 / 280420dp)、面板不透明度 60100%。拖动实时预览,松手保存,另有「恢复默认外观」。
  • 新增「关闭悬浮窗」:关掉后悬浮球与面板都不再出现;需要时长按底部「我的」标签约 1 秒即可重新唤出面板。
  • 新增「长按『我的』打开面板」:长按约 1 秒弹出,再长按收起。面板右上角 ✕ 只关面板,不关悬浮球。
  • 首页顶部新增常驻横幅「省电拦截已开启 · 查看/调整 →」,点击直达省电页;若有关掉的项会以红字提示。
  • 面板底部新增搜索框,可按开关名搜索。

性能

  • 修掉高德 ACCS 长连接空转导致的周期性掉帧:首页地图拖动帧间隔 p99 82.77ms → 17.3ms,掉帧率 6.1% → 0.0%,稳定 60fps。
  • 冷启动中位耗时 ~790ms。
  • 模块自身不创建任何线程;静置 60 秒,模块日志 0~3 条。

修复

  • 工具宫格隐藏不生效:兜底路径绕过了过滤逻辑,已修正。
  • 「关闭 = 不加载」由运行时拦截改为安装期门控,关掉的项彻底不加载对应实现,零性能开销。
  • 版本号固定为 2.2.2 / 222(Version.java、module.prop、AndroidManifest.xml 三处同步)。

已知限制

  • 面板分类栏从屏幕最右约 160px 起手滑动不了(系统手势区冲突),直接点 chip 可正常跳转。
  • 「省电 / 后台」页改动需强制停止并重开目标 App 才生效。
  • 关掉推送长连接后,行程提醒、活动推送、消息中心、家人地图消息会收不到;拨回「开」并强停重开即可恢复。
  • 灵动岛 / 手表联动:官方原包上同样不可用,属设备侧配置,与本模块无关。

Assets

1

10/15/2026, 5:30:13 AM

MapAdKiller 2.2.1 更新说明

发布日期:2026-10-15。版本码:221。对比基线 v2.2.0(版本码 220)。

2.2.0 的 APK 在「自带默认配置」完成前就已构建,包内不含该功能;本版为补齐发布。
模块本体功能与 2.2.0 一致,另修正 2.2.0 遗留的版本号与产物名问题。

新增

  • 自带默认配置:模块内置一份 JSON(res/raw/default_config.json),全新安装后自动应用一次。
  • 格式与「更多 → 导出 JSON 配置」完全一致,可直接替换。
  • null 键表示「未设置、保持缺省」,应用时跳过,不会写成 false。
  • 只应用一次:标记键 _defaults_applied 存在即跳过,不覆盖用户改动。
  • 设置页「恢复默认配置」可手动再应用一次,忽略标记,有二次确认。
  • 免 root 内置版按宿主包名只应用本机那一家的配置组,其它组静默跳过。
  • 内置 JSON 覆盖高德(139 键)、百度(51 键)、腾讯(92 键)与模块界面项(1 键)。
  • 腾讯组 92 键:15 个默认显示的工具为 true,其余 61 个已知工具为 false,16 个总开关为 null(保持缺省)。

修复

  • Version.TARGETS 把百度适配版本写作 22.0.0,设置页因此对 22.0.50 显示 ✘。改为 22.0.50。
  • app/build.ps1 输出名硬编码为 MapClean-lsp-v2.1.6.apk,不随版本号变化。改为从 Version.NAME 动态生成。
  • app/AndroidManifest.xml 版本停在 216 / 2.1.6。同步为 221 / 2.2.1。
  • 仓库 app/META-INF/xposed/module.prop 同步为 2.2.1 / 221,模块内置更新检查不再报旧版。
  • res/values/strings.xml 的 <description> 去掉写死的 v2.0.0。该字符串是系统「应用信息」展示的文案,属于用户可见残留。
  • MainActivity.buildFooter() 内 MapAdKiller v2.0.0 的版本行删除。该方法从无调用点,是死代码。

已知限制

  • 百度面板仍保留约 80px 空白带(原生 mHideHeight 几何下限)。
  • 腾讯工具宫格第 3 档(完全展开)未取得运行时截图验证,自动化上滑只到中档。
  • 腾讯 extendHeight 在官方包内无调用点,模块写入该字段生效,但与官方后续版本兼容性未知。
  • 免 root 内置版的「自带默认配置」仅做静态验证;内置默认配置的腾讯组仅做静态键集校验(键集与取值逐项对照 tmapclean.Spec),未做真机首启验证。

免 root 内置版(高德 / 百度 / 腾讯三个独立 APK,不需要 root / LSPosed / 任何框架)在主项目发布页:
https://github.com/ldxm666/MapAdKiller/releases/tag/v2.2.1

附件

文件 大小 SHA-256
MapClean-lsp-v2.2.1.apk 4,347,508 B 5ed6105166909e1e8e6a2951e3aa613936a86e25688dee3bee8a05fcb979469f
SHA256SUMS.txt — 校验值

Assets

2

10/12/2026, 12:11:55 PM

MapAdKiller 2.1.5 更新说明

发布日期:2026-10-12。版本码:215。对比基线 v2.1.2(版本码 212)。

修了什么:百度

发布日期:2026-10-12。版本码:215。对比基线 v2.1.4(版本码 214)。

2.1.4 的模块对百度地图完全没有反应:开关照写、界面照旧,logcat 里连一条 BMapClean 都没有。
腾讯与高德不受影响。

根因:一个 APK 只能声明一个 Xposed 入口(META-INF/xposed/java_init.list),
百度、腾讯两半只能靠共享源码里的显式转发到达。之前为了让「只并入高德」的免 root
精简构建能编译(它会把整个 bmapclean 包删掉),这两处转发被直接从共享源码里删掉了 ——
精简构建过了,完整模块的百度跟着一起失效:H.module 恒为 null,
每次挂钩都以 miss <id> (module null) 失败,装了等于没装。

  • 恢复 mapclean.MainHook.onModuleLoaded 与 mapadkiller.MainHook.onPackageReady 两处转发。
  • 精简构建改为生成 no-op 桩类(tools/build_variant.py 的 STUBS 新增 bmapclean/MainHook),
    而不是把调用从共享源码里拿掉。
  • 新增构建期护栏:app/build.ps1 在 DEX 里直接校验
    Lio/github/ldxm666/bmapclean/MainHook; 与 Lio/github/ldxm666/mapadkiller/TmapHooks;
    必须存在,缺一个就 fail the build;精简构建也把前者加进 required 列表,
    并把原来的「整包禁用」改成逐类禁用(允许空桩,不允许任何真正能挂钩百度的类)。

同一批的第二个回归:设置页「百度」那一页读写全挂

用户反馈:设置页里百度那一页怎么点都提示 「LSPosed 服务未连接」。

同一个成因的第二个漏接。bmapclean.App 的注释写着"由 io.github.ldxm666.mapclean.App
(真正的 Application)驱动",但那三处调用从来没接上 —— 于是 bmapclean.App.service
恒为 null:百度组(bmapclean_config)读开关永远返回缺省值、写开关永远返回 false,
UI 就把它显示成"服务未连接";bmapclean.App.app() 也为 null,诊断卡永远是"尚未收到回报"。

修复:mapclean.App 的 onCreate / bindService / diedService 补上
bmapclean.App.attach / onBind / onDied;精简构建用 no-op 桩类补位;
app/build.ps1 的护栏把 Lio/github/ldxm666/bmapclean/App; 纳入必查。

实机:I/MapCleanApp: onServiceBind ok 之后紧跟着
I/BMapCleanApp: onServiceBind ok (driven by mapclean.App)(修复前这一行不存在)。

  • 实机验证:baidu_adapter version=22.0.0 mode=capabilities →
    event=install_done pkg=com.baidu.BaiduMap ok=60 miss=0。
  • 高德四件修复无回归;签名与 2.1.2 起所有版本相同(cbecdaeb…54ed),可就地覆盖安装。

免 root 内置版(不需要 root / LSPosed / 任何框架)在主项目发布页:https://github.com/ldxm666/MapAdKiller/releases/tag/v2.1.5

附件 大小 SHA-256
MapClean-lsp-v2.1.5.apk 4,277,717 B 3611ae031b51b877d57802056f114b32262a2c4093da8bdf3491063ec625f18d
SHA256SUMS.txt — 校验值

模块签名与 2.1.2 起的所有版本相同(cbecdaeb…54ed),可就地覆盖安装。

Assets

2

10/12/2026, 11:01:31 AM

MapAdKiller 2.1.4 更新说明

发布日期:2026-10-12。版本码:214。对比基线 v2.1.2(版本码 212)。

本版的重点是 全新的免 root 内置版:把高德部分直接并入高德地图本体,
不需要 root、不需要 LSPosed、不需要任何框架,装完界面自己就是精简好的。
完整说明和安装包在 主项目 v2.1.4 发布页。

本页提供的是 LSPosed 模块,与内置版同一套源码,修复完全一致。

修复:四个「开关看起来没用」的问题

  • 「设置家」无效 —— 那条行由高德自己绘制,模块只决定放不放行,而首页面板实例被高德缓存复用,
    改开关不会重建它。本版让开关写完立刻生效(原地重建,不用退出重进),并且默认开启。
  • 工具开关无效(步行 / 骑行不出现) —— 高德自己的工具槽只有两项,模块以前只会删不会加。
    本版按"已开启"自动补齐空位(首页工具栏实测只有 5 格),只补首页那一份数据,不动高德自己的存储。
  • 「更多工具」没有独立开关 —— 从「工具 → 其他」提到 「首页」分组,标签「更多工具入口」。
  • 地图兴趣点开关完全无效 —— 原生库在集成模式下的布局与类加载器查找路径对不上,从未被加载;
    且原生侧把"没装成"报成了"装成了"。本版补齐加载路径、优先用宿主 nativeLibraryDir,
    并让原生侧如实汇报(日志新增 framework_bound=)。

其他

  • 开关写入即生效:首页工具面板原地重建,原生样式过滤重新下发。
  • 默认值与迁移调整:_amap_protocol_schema 210 → 211,只对"迁移前本来是开"的安装恢复,
    不覆盖用户显式选择。
  • 悬浮窗 UI 重做(作者头像 / 状态胶囊 / 横向滑动切分类 / 分类搜索 / 已开启工具排最前)。
  • 首页推荐画布过滤加固:卡名解析按宿主真实规则,流式信封兼容两种拼写。

验证

层级 结果
编译 BUILD OK,签名 cbecdaeb…54ed(与 2.1.2 同密钥,可就地覆盖安装)
版本 versionCode 214 / versionName 2.1.4
安装 真机就地覆盖 Success(2.1.3 → 2.1.4)
作用域 com.autonavi.minimap / com.baidu.BaiduMap / com.tencent.map
原生库 四 ABI lib/<abi>/libmapclean_labels.so,META-INF/xposed/native_init.list 齐备

⚠️ 关于免 root 内置版被安全中心报红

那是误报。包里内嵌了一个完整 APK(原版高德)、运行时从 assets 加载 dex、并内置签名绕过 ——
三点都来自重打包机制本身,无法通过"清理安装包"消除。

如果你介意红标,就用本页的模块版:它只是把模块装进框架,不改动任何地图安装包,不会被报毒。

附件

文件 大小 SHA-256
MapClean-lsp-v2.1.4.apk 4,277,717 B f1a62850667c16eac0cabbb82c54aeba899b5203de647fbf6cf19a4eeb72d6e6
SHA256SUMS.txt — 校验值

自本版起,发布页只提供成品 APK,不再附带源码包。

Assets

2

10/10/2026, 1:00:44 AM

MapAdKiller 2.1.2 更新说明

发布日期:2026-10-10。版本码:212。对比基线为上一发布版本 2.1.0 系列(Git 标签 v2.1.0-beta1,版本码 210)。

本次更新围绕实际使用中反复出现的问题展开:页面刷新后推荐内容重新出现、隐藏入口仍能被点到、选中的工具没有显示,以及隐藏地图标识误伤底图。设置、数据、布局和点击处理一起调整。

高德首页与工具栏

  • 首页信息流在请求返回、列表刷新和页面重建时继续按配置处理,覆盖天气、扫街榜、活动与营销内容等已验证模块。
  • 回家/公司、好友动态及地图活动入口保持独立设置,减少不同区域共用一个开关造成的误处理。
  • 修复面板上滑后地图无法拖动、收起与回弹状态异常的问题,保留原生手势与面板状态转换。
  • 工具按稳定身份处理,目录从“更多工具”核对;补齐步行、骑行,避免被远程下发的“超划算”等工具替换或混入。
  • 增加仅显示已开启工具的模式:未选择和未知的新工具默认隐藏;普通模式继续使用逐项显示设置。
  • 重排同步更新数据顺序与点击对象,避免显示的是一个工具,点击却打开另一个功能。

高德底栏与地点详情

  • 隐藏底栏入口时同步处理数据项和点击路由,修复“我的”附近误点到已隐藏打车入口的问题。
  • 调整剩余入口宽度与选中背景,修复按钮和背景尺寸不一致。
  • 新增“显示「发现好去处」照片推荐”独立开关,默认关闭,控制长按地图选点详情中的推荐标题与照片信息流。
  • 保留该详情页的地址、行政区、收藏、分享、新增和路线操作,以及“逛逛周边”功能快捷入口。
  • 推荐模块从页面数据与布局引用中同时删除,后续同类响应继续应用配置,避免只隐藏首屏后又被刷新回来。

百度地图标识与白屏修复

  • 地图标识改为一个整体显示开关,不再展示效果不稳定的细分类别选项。
  • 隐藏兴趣点图标与名称,保留道路、街道、城市、河流和其他基础地理内容。
  • 修复替换整个资源目录导致底图白屏的问题:保留百度原始目录,仅为经过结构验证的地图样式文件提供处理后的内容。
  • 原版资源不被覆盖,配置和登录数据不需要清除。无法识别的样式、文件打开失败时使用原始文件。
  • 百度与高德的原生处理按宿主隔离,避免一套资源 Hook 被装入另一地图中。

百度底栏与搜索页

  • 百度底栏除了可见按钮,还有面板状态切换时使用的透明点击代理。本版同步代理显隐、宽度和对应监听器,解决按钮已均分但点击范围仍停在原五列的问题。
  • 在原生重新绑定事件、页面恢复和面板状态变化后维护对应关系,避免“我的”误进入打车。
  • 保留第三入口在语音皮肤下的原生触摸语义,不把长按语音强行改成普通点击。
  • 去除搜索页“热度飙升榜”。仅过滤已验证的排名模型,历史记录与未知数据项保留。
  • 首页搜索框的推广轮播词恢复原生默认提示,同时清理其隐藏的推广查询数据。
  • 搜索页推荐词标签替换为原生常用地址入口,保留回家、去公司、收藏夹及自定义常去地点。
  • 保留景点、美食、酒店、厕所等搜索分类,以及用户输入、历史与正常搜索结果。
  • 继续保留活动图标、任务横幅、AI 此刻、推荐信息流和“我的”页精简能力。

配置与兼容性

  • 新备份格式按高德、百度和模块设置分组,解决同名配置覆盖,以及导回后只有高德恢复的问题。
  • 保留“未设置/使用默认值”的状态,避免导出把默认值永久写成显式选择。
  • 旧版高德平面配置仍可导入;旧文件没有包含的百度设置不会被错误重置。
  • 界面与 Hook 共享配置语义,变更使缓存失效,减少高频读取与开关显示不一致。
  • 大部分功能按实际接口能力安装,地图小版本变化不再直接导致整套增强失效;未知接口和数据结构回退原应用行为。
  • 官方 API 102 仅作编译依赖,完整 service/interface 102 服务类随模块打包,补齐 Vector 2.2 所需的公开服务接口。
  • 框架服务与作用域查询改为异步缓存,避免状态页等待 IPC 导致卡顿,并区分连接等待、作用域读取失败和未勾选地图。服务未连接时不直接判定模块未激活。
  • 校验 APK 签名、四 ABI 原生库、真实 ZIP STORED 存储方式与 16 KB 对齐,构建失败时停止输出。

验证范围与使用说明

主要设备验证版本为高德 17.00.0.2005、百度 22.0.0(1650),Android 16/LSPosed 2.1.1。回归包括配置备份、接口失败回退、工具列表处理、原生样式结构、文件替换边界及百度底栏实际布局和触摸分发。

百度标识开关已完成显示/隐藏、冷启动、放大缩小和拖图对照。百度搜索页已确认默认提示、常用地址与历史保留,热榜和推荐词移除。百度首页/我的已完成 24 次不同位置的点击切换,并覆盖面板展开与收起,未再跳转到打车。

高德地点详情已实机确认推荐标题与照片卡消失,地址、周边工具和路线操作保留。数据过滤通过 Android 真实 org.json 的 136 项断言,覆盖模块与布局引用同步移除、重复刷新、损坏 JSON、未知结构及歧义卡片 ID 的保守回退。

Vector 2.2 已对照官方公开接口完成依赖和状态逻辑检查,尚未在 Vector 2.2 实机复测;腾讯地图本轮未重新验证。不将静态检查写成实机适配结论。

覆盖安装后保持原有框架作用域;调整开关后强停相应地图再打开。地图标识默认隐藏,可在标识分组中开启显示;升级时旧细分类别设置合并到整体开关。

本次发布范围止于上述已验证功能,未纳入百度地点详情“猜你想搜/周边推荐”的新增处理。免 Root 整合 APK 本轮不发布,仓库保留构建与校验工具;普通模块 APK 本身仍需要相应框架。

发布核验

  • 最终模块版本:2.1.2,版本码 212,包名 io.github.ldxm666.mapadkiller。
  • Android 数据/配置/能力回归:1,295 项断言通过(1,120 + 136 + 18 + 12 + 9)。百度底栏布局与触摸专项另通过 274 项断言。
  • 原生文件替换专项 125 项断言,宿主选择与初始化顺序专项 55 项断言,四 ABI 编译通过。
  • APK v2/v3 签名、官方 API 102 依赖、Java/Native 入口、四 ABI ELF 和 ZIP 16 KB 对齐检查通过。
  • APK SHA256:98f27f430a86286ebcf09e2037cb095308128b5a593b5392889a52fec716c3aa。
  • 发布源码包排除原地图 APK、手机证据、日志、私有签名密钥与令牌;下载后可依据 SHA256SUMS.txt 核验。

Assets

3

10/8/2026, 11:58:01 AM

保留已验证的高德重构版本;百度以 2.0.0 为基线修复。

  • 高德:处理首页广告信息流、天气、扫街榜、打车营销卡及通勤入口,修复工具排列、上下拖动和底部选中背景,增加好友动态开关。
  • 百度:版本限定的原生组件与 Presenter Hook,停用旧全局视图扫描;配置缓存读取,整块与逐项开关共享规格,底部剩余入口均分,「我的」页逐卡控制。
  • 百度:隐藏左上角 V22 活动图标及“天天做任务”任务横幅,拦截创建、轮播和恢复显示。

实测适配:高德 17.00.0.2005、百度 22.0.0(1650);libxposed API 102;versionCode 210。腾讯部分沿用原实现,本轮未重新验证。

最新 APK 已完成编译、签名验证及 ADB 覆盖安装,百度安装日志显示 44 个 Hook 成功、0 个 miss;用户已确认本轮实机测试通过。

覆盖安装 APK,在 LSPosed 中保留模块启用状态及地图作用域,强停目标地图后重新打开。更改开关后同样重启目标地图。

完整 ZIP 包含 APK、源码、构建依赖和修复说明;不包含手机日志、截图、目标地图 APK 或签名密钥。
APK SHA-256:4dca8ad40c6c03a54e0aa3f8ec87ca45228956028956ef0d4ac57a1b2ff9261d。

修复与验证说明。GPL-3.0-or-later。

Assets

2

9/30/2026, 6:24:54 AM

v2.0.2(versionCode 202)—— 我的页两张卡:进页即消失、无留白

修复(用户真机逐轮反馈,最终形态)

  • 「百度运动」「全民共建」关掉后仍在:
    这两张卡是 JS 拿到 UGC 数据之后才渲染的,而摘卡的复扫原本只在 OnGlobalLayout 里跑
    —— 布局回调没触发的那几秒,卡片就明晃晃挂在页面上(用户:"刚进去一直在,要等一会儿才消失")。
    现在进入「我的」页后每 200ms 复扫一次(持续约 15 秒,之后自动停),
    卡片一被渲染出来就被摘掉,用户最多看到一闪。
  • 关闭后留下大片空白:早期版本是在页面画完之后才摘视图,而「我的」页是 AJX 自绘列表
    (按预计算坐标摆位,不会重排)→ 摘掉就留洞。
    现在摘除发生在布局阶段(配合上面的高频复扫),不产生空洞;
    并且 JS 若把卡再插回来,下一轮 200ms 复扫会当场再摘。
  • 注意:模块更新后必须重启目标 App(LSPosed 注入发生在进程启动时)——
    adb shell am force-stop com.baidu.BaiduMap 再打开。用户上一轮"卡片还在"的原因正是模块装得比进程晚。

一并交付(v2.0.2 前几轮已修)

  • 首页左上角运营气泡(新鲜事 / 一键穿越 / 古今地图)按资源 id 命中清除
    (event_entry_container / left_container,运行时按名解析,不怕数值重排)。
  • 搜索框热词轮播钉死为默认提示词「查找地点、公交、地铁」。
  • 「我的车 / 导航车标 / 热门语音 / 热门活动」开关失效修复(撤销 gk 共享闸门的误伤)。
  • 更新提示:6 小时节流改为只在同一次运行内生效(冷启动必查)+ 设置页顶部整宽大按钮
    (绿=已最新 / 黄=立即更新 / 蓝=点此重试)。

真机验收

  • 冷启动 → 进「我的」→ 3 秒内:百度运动 / 全民共建 / 反馈中心 全部消失且无空白,
    只剩用户开着的那几张卡(热门语音 / 我的车 / 导航车标 …);全程 FATAL=0。
  • 首页:搜索框为默认词、左上角无气泡。

Assets

1

9/30/2026, 4:24:38 AM

v2.0.1(versionCode 201)—— 开关失效修复 + 首页广告位清除

修复(都是用户真机报的问题)

  • 「我的车 / 导航车标 / 热门语音 / 热门活动」的开关失效(v2.0.0 引入):
    根因是 phoneInfo.gk 闸门 —— gk !== '0' 同时写在 8 张卡的 s-if 里,
    只要注入 gk=0,这些卡自己的开关就被压住(表现为"打开了还是不显示")。
    现在只在「这几张卡本来就都该隐藏」时才注入 gk;各卡改由 per-card 过滤控制,
    广告/运营卡也一并从共享闸门改成逐卡名摘除。真机日志:mine js 补丁里
    卡片名逐个列出(C.car/voice/carLogo/sport/contribution/common/...)。
  • 「全民共建 / 百度运动」关不掉:JS 层注入被 App 新版 bundle 加载机制挡住
    (biz_pkg_path 只覆盖外壳与资源包;内容入口 loadScriptFromString 一次都没触发;
    连"写新文件 + 同步 pkginfo.json 的 md5"也不被认)。
    改为视图层兜底:按标题锚点(百度运动 / 反馈中心)整块摘卡,
    复用首页同款 hideSection 的三重保险(满宽 / 高度上限 / 禁词消歧)。
    真机验证:两张卡消失,页面其余区块与页头不受影响。

新增(用户要求)

  • 首页左上角运营浮层清除:「一键穿越 / 古今地图 / 新鲜事」那类贴图广告,
    判据是"可点击 + contentDescription 命中白名单 + 位于屏幕左上",实测命中并 GONE;
    浮层是绝对定位的地图叠加层,GONE 不影响右侧「图层 / 反馈」按钮。
  • 搜索框热词轮播钉死:首页搜索框里的运营热词("青城山门票 / 成都海昌极地海洋公园…")
    不再轮播 —— 把 tv_searchbar_title(及其所属切换器子树)的文案钉成默认提示词
    「查找地点、公交、地铁」。不摘控件、不动搜索框。真机验证:60 秒后仍是默认词。
  • 两项都进了设置页新的**「首页广告位」**分组,默认关(= 已清除),可随时打开恢复。

说明

  • 开关语义不变:true = 显示。改完「我的」页开关重开该页即生效;首页开关强停 App 后生效。
  • 高德 / 腾讯侧能力与 v2.0.0 一致,未改动。

Assets

1

9/30/2026, 1:53:01 AM

MapAdKiller v2.0.0(versionCode 200)—— 合并 BMapClean

这一版把另一个独立模块 BMapClean(百度地图界面精简)整体并入本模块。
模块 id / 应用名 / 签名全部不变(io.github.ldxm666.mapadkiller),所以是就地升级:
LSPosed 里原来的启用状态、作用域勾选(高德 / 百度 / 腾讯)和已有配置全部沿用,
不用重装也不用重新勾选。原来那个 io.github.ldxm666.bmapclean 包可以直接卸载。

新功能一:设置页左右滑动分页

原来的单页长列表按 App 拆成三页,左右滑动切换,顶部标签也能直接点:

页 内容
百度地图 首页底部入口栏 / 工具宫格 / 回家去公司 / 天气 / 推荐信息流 / 「我的」页 + 模块状态卡
高德地图 首页标签栏 / 工具宫格 / 推荐内容 / 「我的」页 / 搜索框内页 + 去广告卡片
其他 隐藏桌面图标 / 工具宫格排序 / 调试日志 / 去广告说明

新功能二:版本检查与更新提示

  • 每次打开设置页自动查最新版本:多源回退,没有代理也能用 ——
    gh-proxy.com 反代 → jsDelivr CDN → jsDelivr(fastly) → GitHub 官方 → gh-proxy 反代 raw。
    结果缓存 6 小时,点版本行强制刷新;全部源失败只显示「未获取」,不会弹错误框。
  • 界面顶部显示当前版本 + 线上最新版本:已是最新 = 绿色,有新版本 = 黄色。
  • 发现新版弹窗,四个出口:镜像下载(gh-proxy,无代理可用)/ GitHub 下载 / Telegram 群 / 稍后更新。
  • 同时显示最佳适配应用版本并对照本机实际版本:
    百度地图 22.0.0 / 高德地图 17.00.0.2005 / 腾讯地图 11.6.0(一致 ✔ / 不一致 ✘)。

并入的百度侧能力(原 BMapClean v0.4.3)

  • 首页:底部入口栏逐项开关 + 剩余项自动均分、工具宫格 15 格逐项、回家 / 去公司、天气(地图右侧 + 底部行程卡)、推荐信息流
  • 「我的」页 —— 视图层方案三次回归后彻底废弃,改为数据层 + JS 层:
    • 数据层:改写 Talos JS 网络响应(qt=ads 的活动/资源位按 ads.content[].type 摘条目)、
      改写手机信息下发(补 phoneInfo.gk=0,一次关掉 天天领钱 / 出行保+借钱 / 我的店铺 / 导航车标)
    • JS 层:改写 TalosBridge.loadJSFile 的 biz_pkg_path 指向打过补丁的副本,
      在页面 JS 里把 sport / contribution / common(宫格) 从 cardList 摘掉
    • 真机结果:我的页只剩 头像 / 足迹卡 / 客服中心,无留白、无误伤

修复

  • 百度「我的」页必崩:拦截器读完响应体必须无条件换新 body,否则
    NetworkingModule$c.onResponse 二次 string() 抛 IllegalStateException: closed,
    OkHttp Dispatcher 线程 FATAL(真机栈为证,已修)。
  • 分页一次滑动只翻一页(松手时按拖动起始页判断,不再叠加)。

安装 / 更新

Assets

1

1.1.0

Stable

9/29/2026, 12:15:41 PM

MapAdKiller v1.1.0(versionCode 110)

版本口径统一:模块对外版本恒为 1.1.0 / versionCode 110。

新增开关(默认开 = 已处理,可随时关):

  • 关闭首页搜索框热词轮播(文字流动 / 运营广告词)
  • 关闭首页「去XXX 打车」打车浮窗(打车运营卡)

修复:

  • 首页搜索框文字流动 + 运营/广告词:在 BaseSearchBar 的两个词出口上换成系统默认提示词
  • 首页「去XXX 打车」运营浮窗卡:按「卡内文案锚点 + AJX 列表 item 结构」整卡摘除

其余能力保留:三家开屏断源、首页/我的页 UI 自定义、搜索页去广告、广告 SDK 拦截。
详细证据见源码仓库 docs/FIX-v1.1.0-hotword-and-ridecard.md。

Assets

1

9-1.0.9

Stable

9/26/2026, 5:07:40 PM

MapAdKiller v1.0.9 (versionCode 9)

  • 榜单/特色推荐卡统一开关
  • 液态玻璃设置页
  • 隐藏桌面图标后 LSPosed 入口常驻
  • 幽灵格机制(修复乱闪与点击穿透)
  • 更多工具/秒送识别与修复

Assets

1

1.0.7

Stable

9/18/2026, 1:24:02 PM

v1.0.7 (2026-09-18)

修复:高德首页「删了标签,悬浮栏没被占满」

藏掉标签只改了槽位宽(weight 平分),但那一层选中胶囊 id=tab_bg_layer 的宽度
是高德自己按 totalWidth / 标签总数 算死的,它不知道我们藏了几个。
于是 5 个标签变 2 个之后胶囊还是 201px,首页 / 我的悬在 1/4、3/4,中间和两头全是空的。

现在每个可见槽位的胶囊层会被撑成槽位宽度本身 —— 等价于高德自己按 2 个标签排出来的样子。
真机实证:TAB-FILL slot=503 visible=2 rowW=1006,整条悬浮栏占满。

修复:「部分隐藏」会把路线规划页的信息模块一起抹掉(严重)

根因是整棵 decor 树照单全收:路线页备选卡片的里程文案 2379公里 / 34米
命中了首页信息流的「距离标签」规则(isDistanceLabel),collapseHost 顺着父链
爬到列表宿主,把「24小时22分 / 大众常选 / 封路」那一整排路线信息模块 GONE 掉。

现在加了页面闸门(铁律 G):首页与「我的」页都带底部悬浮标签栏
(LiteTabBar > TabItemLayoutV2),路线页 / 搜索页 / 导航页没有。
认不出标签栏就整轮放弃,一个节点都不碰;列表绑定钩子同样受这道闸门约束。
真机实证:进入路线页后 COLLAPSE / BIND-HIDE 归零,三个备选路线卡片完整。

新增:隐藏桌面图标(可开关)

LAUNCHER intent-filter 移到 activity-alias(.LauncherAlias)上,
设置页新增「隐藏桌面图标」开关,切的就是这个组件的 enabled 状态。

  • 隐藏时挂一条常驻通知当回家的路(点按回设置页),并申请 POST_NOTIFICATIONS;
  • 手动兜底:adb shell am start -n io.github.ldxm666.mapadkiller/.MainActivity;
  • 在 LSPosed 管理器里把模块停用不受影响,桌面图标状态存在系统组件表里。

真机实证:disabledComponents: io.github.ldxm666.mapadkiller.LauncherAlias,
resolve-activity -c LAUNCHER 返回 No activity found,通知正常常驻。

新增:「收藏夹」独立开关

宫格第 3 行是轮播格(景点游玩 / 离线地图 / 通行费助手 / 收藏夹 / 更多工具 …
在几个槽位里换着显示)。「收藏夹」以前被并进「更多工具」的别名,
受「扩展工具页」和「更多工具」双重夹击,不管怎么设都是隐藏的。

  • 从 TOOL_EXTRA_LABELS 里摘出来,TOOL_ALIAS 归一成自己的键;
  • 留不留,只看这一格此刻显示的那个文案自己的开关,不再看 cellKey
    (那是首见文案钉住的键,轮播格钉错了就永远放不出来);
  • 「保过一次就永久保」:轮播轮到收藏夹时会把格子放出来,并把它从隐藏登记表里摘掉;
  • 收行判据改成配置驱动(markKeep)并支持反悔:
    以前按当时的 width/height 判空行,AJX 首帧还没量过时整行会被误判成空行收掉,
    而 squashedRows 每轮重申 GONE+height=0 —— 那一行就永久死了。

新增:隐藏搜索页金刚区(美食 / 酒店 / 加油站 / 休闲玩乐 / 扫街榜)

搜索页顶部那排分页运营位,设置页新增「高德 · 搜索页」分区独立开关(默认显示)。

识别方式是结构投票:只有当某个容器子树里同时挂着 >=4 个分类文案时才认它,
命中从上往下第一个满足的祖先(最小那个),再往上走几层把分页小圆点一起收掉。
单看一个「美食」绝不动手 —— 首页信息流、我的页、宫格里都有它。
这条规则不属于首页,所以跑在页面闸门之前。
真机实证:SEARCHCAT-HIDE Container [31,13 1017x223],金刚区与圆点一起消失,
搜索框 → 快捷 chip → 历史记录 之间不留空带。

修复:百度地图卡在开屏,要按返回键才进主页(严重)

根因:广告 SDK 自动检索把 com.meishu.sdk.core.ad.splash.SplashAdLoader#loadAd
一起吞了(不 proceed、返回默认值)。百度开屏正是等这条回调往下走的,
回调永远不来 → 开屏流程永远收不了尾,屏幕还留一层不消失的暗色蒙层。

修法:凡是开屏链路(类名或方法名含 splash / kaiping)的加载方法一律不吞,
原方法照常执行。开屏广告不需要在这一层拦 —— 视图层已经用 alpha=0 兜底,
零曝光且完全不影响开屏自己的收尾节奏。

修复:百度开屏广告被 GONE 掉同样会掐死收尾

视图层原来对开屏广告根做 setVisibility(GONE)。真机实证:GONE 之后
「跳过 5s」倒计时与收尾回调一起死,同样表现为卡开屏。
改成 setAlpha(0f) —— 视图照常 measure/layout/跑动画/收回调,只是看不见。
真机实证:日志从 hidden 变 hidden(alpha0),倒计时 5s→4s 正常走,
百度冷启动 1 秒内进入 MapsActivity,无蒙层、无广告曝光。

修复:首页「去幸福路步行街」快捷卡被压成半张(用户报「半遮住、很难看」)

根因:那张卡里也有一个写着「打车」的按钮,ascendSmallCell 照样爬到了它的容器
(161x95,父容器 1006x210),于是它被当成工具宫格的一格;packRow 随后
按工具格尺寸(158 宽)把整张卡重排 —— 卡片文字被压成 84px 宽,
「去幸福路步行街」只剩「去幸」两个字。

真机日志证据:TOOL-HIDE 打车 [801,57 161x95] + TOOL-REPACK [0,0 1006x210] cells=4。

修法:两道形状闸门。工具格实测 158x147 / 158x164,所以

  • applyTools 里先问 looksLikeToolCell():宽 120220 且高 120200 才算宫格格子;
  • packRow() 入口再加一道同样的闸门,任何被误判的容器都不会被重排。

真机实证:TOOL-HIDE 打车 [636,0 158x164](真格子),
卡片文案恢复 w=617(与停用模块时的基线完全一致),TOOL-REPACK 不再误伤。

修复:「设置家 / 设置单位 / 常去地点」不再连带整张卡

这一排和「去XX」快捷卡常常在同一个 AJX item 里,原来走 collapseHost
会把整张 item 一起收掉。现在 hideChipsRowOnly() 只摘那一排
(最小、且子树里挂着 ≥2 个 chips 文案的祖先),真机日志 CHIPS-HIDE。

修复:「更多工具」页白屏 + 收藏夹看不见(严重)

两个症状同一个根因:搜索页金刚区的规则跑到「更多工具」页上去了。

applySearchCats() 按设计跑在首页闸门之前(搜索页没有底部标签栏),
而「更多工具」页的「服务」区里全是同一批分类词 —— 美食 / 洗车养车 / 洗牙 /
休闲玩乐 / 订酒店… 于是整页被当成金刚区收掉,用户点进去就是一片白。

同一个根因还让「收藏夹」看着像没生效:那一页的入口全被收没了,
开关开不开当然都看不见(开关本身一直是好的)。

另外标签级即时隐藏(消闪烁那段)以前不分页面:只要文案命中就盖掉,
于是「更多工具」页里的「代驾 / 旅游度假 / 景点游玩…」变成"有图标没字",
就是用户说的「偶尔跳出其他工具出来」。

修法(两道):

  • 金刚区规则加结构护栏:命中的容器祖先链上必须有 HorizontalScroller
    —— 搜索页金刚区是分页横向滚动条里的一排,「更多工具」页的分类宫格不是;
  • 标签级即时隐藏加归属护栏:工具键必须真的是宫格格子(looksLikeToolCell),
    规则键必须真的在首页(homeCtx)。

真机实证(A/B 对照):

停用模块:更多工具页 30 条文案正常渲染,「最近使用」里 收藏夹 / 驾车 / 租车 都在
启用模块:同样 30 条文案,收藏夹在,白屏消失
模块动作全部落在首页(TOOL-HIDE 几何全是 158x147 / 158x164)
搜索页:SEARCHCAT-HIDE Container [31,13 1017x223] 照常命中

新增:首页运营推广卡槽位开关(「去XX」/ AI叫车 / 顺风车…)

首页底部那个槽位是高德的轮播推广位,标题一天能换好几张。实测同一台机器上
连着几十分钟就换了五张:

去幸福路步行街    / 有座不拥挤 · 行程有保障     / 打车
帮我预约车辆      / 通勤高峰担心拥堵、叫不到车 / AI叫车
帮我叫一辆空气清新的车 / 怕叫到臭车?试试个性化叫车 / 去打车
预约顺风车,一口价超便宜 / …                 / 去预约
顺路搭模式上线了  / 拼座7折起 · 乘客邀请直接拼入 / 去预约

盯文案永远追不上,所以最后落到结构上。真机 uiautomator 实测这五张卡版式完全一致:

标题  [185,2093] w≈580~617 h=55
副标  [185,2161] w=150~179 h=39   (两个 chip)
按钮  [845,2130] w=112 h=47       (右侧药丸)

判据:整屏宽(≥90%)+ 高 180320 + 一个 ≥5 字的标题 + 一个 27 字的短按钮,
并且这个节点本身就是列表 item(父级是 AjxList2)。

三条护栏:

  • 宫格 item 是 1080x508,高度直接出界;
  • 「我的」页那些整屏宽的行里必有 MY_* 文案,一律排除;
  • 天气 / 限行卡形状也撞得上,按「°C / 天气 / 限行 / 气温 / 降雨」排除。

两个实现要点(都踩过):

  1. 扫文案时直接读视图(AJX 的 Label 把文字挂在 contentDescription 上),
    不能查 anchors 索引 —— 索引里只有"被规则认领过"的文案,新面孔永远等不到;
  2. 绑定那一刻 item 还是 0x0,判不了几何 —— 所以除了 bind 钩子,
    每一轮 applyPass 在布局稳定后还会再找一遍(PROMO-HIDE)。

真机实证:BIND-HIDE home_quick_card [0,0 0x0] —— 命中的正是没写进任何文案表的
「顺路搭模式上线了 / 去预约」那一版。

新增:「去XX」快捷打车卡单独开关

首页底部那张「去幸福路步行街 / 有座不拥挤 / 行程有保障」的智能目的地卡,
设置页新增独立开关(默认显示)。

判定用的是「标题形状 + 旁证」两条:标题以「去」开头、长度 2~16、不是工具键也不是
chips 键;并且往上 8 层内能找到挂着「有座不拥挤 / 行程有保障 / 打车…」的小块。
只有形状命中就乐观登记,旁证由每一轮 applyPass 再判 —— 因为标题 setText 的时候,
旁边那行小字往往还没写进去,当场判定必然落空。

真机实证:BIND-HIDE home_quick_card [37,507 1006x242],卡片整条消失,
页面收得干净,不留空带。

增强:常驻重申心跳

resume 时只排 6 轮 APPLY(最晚 4.2s),之后 applyPass 停手;而 AJX 在滚动 /
重渲染时会把被压掉的 item 复活。现在加了一条只跑 reassert() 的 300ms 心跳,
并在 onBindViewHolder 里对已判定要收的 item 立刻重新按回去。

修复:隐藏不再写 lp.height = 0

AJX 重绑时会 setVisibility(VISIBLE) 但保留我们写的 height=0,
那张卡就变成"半张、文字被切"的残片。改成只 GONE:GONE 的节点根本不会绘制,
从机制上不可能产生残片。

其它

  • 页面闸门同时让「我的」页之外的误伤面归零;
  • versionCode 7 → 8。

Assets

1

v1.0.6

Stable

9/13/2026, 8:09:47 AM

v1.0.6 (2026-09-13)

新增:广告 SDK 自动检索 + 学习 + 持久化

不再只靠内置的厂商前缀表 —— 内置表永远只能找到已经写进去的厂商。现在:

  • 自动发现:扫描目标 App 自身 APK 里的 dex 字符串表(纯 Java 解析 string_ids,
    只读短字符串、不遍历全文件,无 DexKit / 无 native 依赖),既匹配内置前缀,
    也按广告特征词找出可疑类,再从类名反推厂商根包名;
  • 安全闸门(重要):广告特征词必须落在类名前 4 段命名空间内 + 基础设施根黑名单。
    否则会误学 —— 实测高德曾被学出 com.alipay / com.google / com.huawei /
    com.taobao / com.alibaba 等 15 个非广告包,真拦下去会把登录、支付、地图本体一起打死;
  • 持久化:hook 侧拿到的 RemotePreferences 是只读实现
    (UnsupportedOperationException: Read only implementation),
    且超时/广播跨进程唤起在 HyperOS 上会被拦 → 改用 ContentProvider 通道
    (ContentResolver.call() 按需唤起设置 App 进程)把学到的东西交给 App 侧落盘,
    并加了一层本地 prefs 暂存兜底;
  • 下次直接拦:学到的厂商前缀跨进程保存,三家地图下次启动读到即生效。

设置页新增「已捕获广告 SDK:N 个」一行,点开可看清单、可一键清空重新学习。

修复:框架类被全局 hook 导致百度闪退 / 腾讯 ANR(严重)

SDK 自动 hook 最初沿父类链往上走,从 SDK 类一路升到 android.view.View /
android.app.Dialog / android.content.ContextWrapper 并挂上了钩子:

SDK BLOCK android.app.Dialog#show          ← 全局 Dialog 被拦
SDK CTX   android.app.Activity#startActivityIfNeeded
SDK CTX   android.content.ContextWrapper#startService
→ ANR in com.tencent.map / 百度地图闪退

这与 v1.0.2 白屏事故同源,是本模块第一红线。已改为只处理声明在 SDK 类自己身上的
方法,并加框架包硬闸门(android. / java. / dalvik. / androidx. / kotlin 一律不动)。
实测三家 App FATAL=0 / ANR=0,框架类 hook 残留 0。

修复:状态显示与实际不符

原来用 StatusCheck.amEnabled() 自检 —— 它依赖"模块被注入自己的进程",
实测 LSPosed 不会这么做,于是明明已激活却显示未激活。
改为两个可验证的真实信号,并配红/绿点:

● 已激活 · LSPosed 2.1.1                 (LSPosed 服务可达)
● 作用域已勾选 · 高德 / 百度 / 腾讯(3/3) (向服务查询 getScope())

修复:设置 App 启动即崩

NoClassDefFoundError: io.github.libxposed.api.XposedInterface$Hooker
  at Config.prefs → SdkAutoBlock.loadLearned → MainActivity.sdkSummary

io.github.libxposed.api.* 是只编译不打包的 stub,App 进程里没有这个包。
已加 hookSide 闸门:App 侧一律不触碰 H / Config.prefs()。

优化:百度开屏广告隐藏提速 3 倍

原来只有等"跳过"文字出现才认得出广告,广告先亮 1 秒。补上实测命中的 token
(qumeng / advlib / splashcountdown)并加 onPreDraw 探针:

旧: BMAP splash ad hidden t=1000ms hit=skip-btn:...SplashCountdownView
新: BMAP splash ad hidden at=350ms hit=qumeng:com.qumeng.advlib...

优化:高德首页内容流

信息流卡片改为挂列表适配器的 onBindViewHolder,在绑定完成的同一帧内判定并隐藏;
并补挂 onPreDraw 复查 —— 新帖的文字往往在 onBindViewHolder 返回后才写入,
只在绑定时刻判会漏。实测滚动过程中 100+ 次 BIND-HIDE,几何全为 0x0(从未被绘制)。

其他

  • 品牌统一:设置页标题 MapAdKiller,分类标题标明作用域(高德 · 首页工具宫格 等)
  • 修复「已捕获广告 SDK」计数不刷新(onCreate 时的空快照 vs 点开时的实时值不一致)
  • 替换模块图标

Assets

1

v1.0.5

Stable

9/11/2026, 1:22:06 PM

v1.0.5 (2026-09-11)

新增:高德首页 / 「我的」页 UI 自定义(并入原 AmapEnhancer 引擎)

把独立模块 AmapEnhancer 的整套 UI 引擎合并进本模块(包名仍是
io.github.ldxm666.mapadkiller,百度 / 腾讯 hook 原样保留)。模块 App 现在带有设置页,
改动写入 LSPosed RemotePreferences,Hook 侧同名 group 读取,写入即生效。

可配置项:

  • 主页标签栏:逐 tab 显示/隐藏(首页 / 探索 / 长按说话 / 打车 / 我的),
    剩余 tab 自动均分重排,不变形
  • 首页工具宫格:10 个工具逐格显示/隐藏,剩余格子行内左对齐补空;
    另加「扩展工具页」开关(景点游玩 / 离线地图 / 通行费助手 / 收藏夹 / 旅游度假,默认隐藏)
  • 首页推荐内容:天气卡 / 周边景区 / 榜单帖 / 距离卡(公里与米)/ 精选榜单 /
    攻略内容流 / 问问 AI / 推荐频道栏 / 设置家等 chips
  • 「我的」页:订单栏 / 车辆服务栏 / 达人任务 / 运营卡栏 / 猜你喜欢 / 资质信息与协议中心

关键修复:一条推荐区规则把整个工具宫格抹掉

旧引擎让「文本锚点」直接决定「收缩到哪个祖先」。宫格第 3 行轮播出的 景点游玩
命中了推荐区锚点里的「景点」子串 → 被当成 feed_scenic → 沿父链爬到 AJX 列表 item
——而那个 item 就是整个工具宫格 → GONE + 高度归零。整排工具因此消失。

修复:先判定归属面,再执行动作;工具格/行/宫格登记为受保护节点,
任何「收缩 item」的爬升路径一旦穿过受保护节点立即中止。

关键修复:排版重叠错乱

曾尝试跨行把 更多工具(宫格第 3 行)搬进第 1 行的空槽,
实测会被 AJX 自有模型的下一次布局覆盖,两套几何叠在一起 → 标签重叠。
现已退回安全实现:只做行内左对齐压实 + 空行压 0 高,绝不改格子的父节点。

根治:信息流卡片改为「绑定即隐藏」,不再渲染后再删

实测 AJX 列表适配器 ...ajx3.widget.view.list.a 是混淆的,字段只有
IAjxContext / zr / nv0 —— native 侧不存在条目数据列表,数据在 JS 引擎里,
Java 层没有可直接过滤的数据结构。因此改为挂载该适配器的 onBindViewHolder,
在条目绑定完成的瞬间(仍在本次 layout pass 内、这一帧还没绘制)判定并隐藏:

  • 真机实测 29 次 BIND-HIDE,几何全是 0x0 —— 卡片一次都没有被绘制出来
  • 不再依赖「下一帧再扫全树」,也不再 600ms 常驻轮询

其他修复

  • 配置不保存:edit().apply() 是异步落盘,切完开关立刻退出设置页会丢写入 → 改 commit()
  • 设置页开关显示错:LSPosed 服务是异步绑定的,绑定前 readState() 只能回退默认 true,
    重开设置页会看到「全开」→ 现在绑定成功后按真实存储重刷,绑定前开关禁用
  • 频道栏摘不掉:它的文案既不走 Label.setText(String) 也不走 Label.setAttribute("text",…),
    文本锚点完全失效 → 改为结构识别(HorizontalScroller + ≥3 个高 60~170、宽 ≤250 的 chip;
    注意要忽略 53x11 的下划线指示条,否则永远匹配不到)
  • 锚点丢事件:车辆服务 这类锚点在 setText 时其 HorizontalScroller 尚未 attach,
    旧实现重试 3.5 秒后放弃 → 改为常驻 WeakHashMap 索引,每轮重试到挂载为止
  • 工具名与实际文案不一致:火车票机票→火车票、高德扫街榜→高德扫街(别名归一)
  • 我的页条目带装饰字符(实际是 -资质信息 / 协议中心-)导致精确匹配永远失败 → 归一后匹配
  • 距离卡只认「公里」,漏掉同城卡的「597米」→ 补上米

性能

  • 每个锚点不再各自 postDelayed(500ms) + 150ms×20 重试,隐藏/重排合并到下一帧执行一次
  • 配置改为每轮 getAll() 快照一次,锚点判定读内存(原先每次判定都走一次 RemotePreferences IPC)
  • 去掉 600ms 常驻全树轮询,改为 resume 后按 100/350/800/1500/2600/4200ms 收敛几轮

其他

  • 替换模块图标
  • module.prop 补齐收录所需标准字段(name / version / versionCode / author / description)

Assets

1

v1.0.4

Stable

9/10/2026, 10:45:14 AM

v1.0.4:与 v1.0.3 代码完全一致的重新发布版本。

v1.0.3 的发布说明曾被收录站点以乱码快照缓存,本版本通过版本号升级(versionCode 5)
强制重新索引。功能内容:

  • 修复 v1.0.2 起 Hooker 接口方法名错误(hook -> intercept)导致的全部 Hook 静默失效(AbstractMethodError)
  • 修复百度 21.20.30 启动白屏/卡开屏(回退未经真机验证的开屏 Hook)
  • 适配百度 21.20.50:自营开屏绕过数据闸门,新增 SplashViewContainer.addView 探测拦截(品牌层/倒计时流程不受影响)
  • hookAll 跳过 abstract 方法;Hook 首次触发记录 HIT 日志

真机回归:高德 17.x / 百度 21.20.50 / 腾讯 11.x(Android 16, LSPosed API 102)

Assets

1

v1.0.3

Stable

9/10/2026, 10:35:07 AM

v1.0.3 关键修复与适配:

  • 修复 v1.0.2 起 Hooker 接口方法名错误(hook -> intercept)导致的全部 Hook 静默失效(AbstractMethodError)
  • 修复百度 21.20.30 启动白屏/卡开屏(回退未经真机验证的开屏 Hook)
  • 适配百度 21.20.50:自营开屏绕过数据闸门,新增 SplashViewContainer.addView 探测拦截(品牌层/倒计时流程不受影响)
  • hookAll 跳过 abstract 方法;Hook 首次触发记录 HIT 日志

真机回归:高德 17.x / 百度 21.20.50 / 腾讯 11.x(Android 16, LSPosed API 102)

Assets

1

1.0.2

Stable

9/8/2026, 10:34:17 AM

v1.0.2: libxposed API 102 refactor; sync Amap 17.00 / Baidu 21.20.30 / Tencent 11.5.0; cached SDK splash (SplashViewContainer) kill; in-app ad expansion (POI/route/floating promo); ad-badge ViewKiller.

Assets

1

1.0.1

Stable

9/4/2026, 5:20:46 AM

v1.0.1: 高德 14 / 百度 34 / 腾讯 8 hook 点 + ViewKiller 兜底。换用 io.github 命名空间包名。

Assets

1