Repository navigation
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),可就地覆盖安装。