一个 Android 模块。装好之后,地图 App 的广告、活动、营销信息流、推荐内容会被关掉,道路、地名、导航这些该有的东西一样不少。
- 两种装法:免 root 内置版(普通用户,装上就能用)/LSPosed 模块版(已经用框架的用户)。
- 有开关面板:所有功能都是开关,你决定关哪些,随时可以拨回来。
- 改了立刻看得见:面板里每一项都标了「开了会怎样」,不用猜。
- 不占资源:模块自己不创建线程,静置时几乎不产生任何日志。
支持的应用:
| 应用 | 包名 |
|---|---|
| 高德地图 | com.autonavi.minimap |
| 百度地图 | com.baidu.BaiduMap |
| 腾讯地图 | com.tencent.map |
当前版本 2.2.2(versionCode 222),基于 libxposed API 102,最低 Android 8.0。
到 Releases 页面下载,两个包选一个就行。
| 包 | 文件名 | 适合谁 | 需要 root 吗 |
|---|---|---|---|
| 免 root 内置版(推荐) | amap-2.2.2-nonroot.apk(高德免 root 内置版) |
普通用户,手机上没装框架 | 不需要 |
| 模块版 | MapClean-lsp-v2.2.2.apk |
已经在用 LSPosed / Vector 的用户 | 需要框架 |
一句话区别:内置版把模块直接并进了地图本体,装完就是成品,代价是包体大、签名变了;模块版是一个几 MB 的小模块,靠框架注入,三个地图共用一份配置。
模块版 MapClean-lsp-*.apk 免 root 内置版 �map-*-nonroot.apk 体积 约 4 MB 约 175 MB 需要框架 需要 LSPosed / Vector 不需要 会不会动到高德本体 完全不动(只在运行时注入) 会替换:包名仍是 com.autonavi.minimap,但签名变了(CN=xiawanli) 卸载后 高德还是官方原版 需要重装官方高德 root / LSPosed 用户请只装 4 MB 的模块版。 如果你发现"高德签名被改了",几乎一定是装了 175 MB 的内置版 —— 它本来就是重新签名的重打包高德。装回去的办法:卸载高德 → 从应用商店重装官方版 → 只安装模块版。
- 下载
amap-2.2.2-nonroot.apk(高德免 root 内置版)。 - 先卸载手机上原有的高德地图(内置版重新签过名,和官方签名冲突,无法覆盖安装)。
卸载会清掉登录状态和已下载的离线地图,装好重新登录即可。
- 安装,打开高德地图,长按底部「我的」标签约 1 秒,面板就出来了。
不需要 root,不需要 Magisk,不需要 LSPosed,也不需要任何框架。
- 安装
MapClean-lsp-v2.2.2.apk。 - 在 LSPosed / Vector 里启用模块,并把需要处理的地图 App 勾进作用域
(高德
com.autonavi.minimap、百度com.baidu.BaiduMap、腾讯com.tencent.map,勾哪个管哪个)。 - 重启目标地图 App(强制停止后重新打开),然后长按底部「我的」标签约 1 秒。
模块版不改动地图安装包,安全软件不会报红,三个地图共用同一份模块与同一套配置。
图:长按底部「我的」标签
长按底部「我的」标签约 1 秒 → 面板从底部弹出。再长按一次即可收起。
- 面板右上角的 ✕ 只关闭面板,不会关掉悬浮球。
- 想彻底让悬浮球消失,去 外观 → 关闭悬浮窗(见下一节)。
- 关掉之后想再打开:还是长按「我的」标签约 1 秒,面板会重新出现。
面板底部有一个搜索框,开关太多找不到时直接搜名字。
面板顶部是一排分类标签(chip),左右滑动或直接点选切换:
| 顺序 | 分类 | 里面有什么 |
|---|---|---|
| 1 | 首页 | 首页那些卡片的开关:天气、扫街榜、活动、营销信息流、回家/公司等。顶部有常驻横幅 |
| 2 | 省电 | 推送、后台任务、埋点与广告、第三方标注过滤,共 11 项 + 一键省电 |
| 3 | 工具 | 首页工具宫格与「更多工具」里的逐个开关 |
| 4 | 内容 | 各类内容流、推荐位、详情页信息流 |
| 5 | 地图 | 地图上的兴趣点标识、图层相关 |
| 6 | 我的 | 「我的」页面里的入口与卡片 |
| 7 | 底栏 | 底部标签栏的入口 |
| 8 | 其他 | 悬浮窗入口、调试日志、当前版本、检查更新 |
| 9 | 外观 | 悬浮球与面板的大小、不透明度、宽度 |
面板顶部固定显示:
| 元素 | 含义 |
|---|---|
| 头像 + 名称 | 当前正在配置的目标 App |
| 版本胶囊 | 🟢 绿色 = 已是最新版本;🔴 红色 + 「新版本」小标 = 有新版本可用(点它可去下载) |
| 连接状态药丸 | ● 已连接 · 可写入 正常 / ● 已连接 · 写入被拒 写不进去 / ○ 只读 · 需要目标 App 运行中 目标 App 没在跑 |
| GitHub 链接 | 直达项目主页 |
首页顶部的常驻横幅:省电拦截已开启 · 查看/调整 →,点一下直接跳到「省电」页。
如果你之前关掉过其中某些项,这行会变成红字提示,提醒你当前不是全拦截状态。
「外观」页有 4 个滑块,拖动时实时预览,松手才保存,不满意随时拖回去。
| 滑块 | 可调范围 | 默认值 |
|---|---|---|
| 悬浮球大小 | 36 ~ 72 dp |
46 dp |
| 悬浮球不透明度 | 30 ~ 100 % |
100 % |
| 面板宽度 | 自动 或 280 ~ 420 dp |
自动 |
| 面板不透明度 | 60 ~ 100 % |
100 % |
下面还有两个按钮:
- 恢复默认外观:一键把上面 4 项拨回默认。
- 关闭悬浮窗:悬浮球和面板都不再出现(适合已经调好、不想再看到球的用户)。
⚠️ 关掉悬浮窗之后不是没法找回:长按底部「我的」标签约 1 秒,面板会重新弹出。
这一页有 11 个开关。语义请先记住一句话:
开 = 这个行为已经被拦截(默认全部开启);关 = 恢复高德的原生行为。
| 分组 | 开关 | 拦截了什么 | 关掉之后 |
|---|---|---|---|
| 推送 | 关闭推送长连接 | ACCS 长连接(省电最多的一项) | 长连接恢复,待机耗电上升 |
| 关闭推送消息处理 | 推送消息的分发处理 | 推送消息会被处理,耗电略升 | |
| 关闭推送服务壳 | 推送服务的外壳进程(激进) | 推送服务壳恢复常驻 | |
| 后台任务 | 关闭周期任务 | WorkManager / JobScheduler 周期任务 | 周期任务恢复调度 |
| 关闭子进程拦截 | 子进程拦截的总闸(排查用) | 一次性放行全部子进程拦截,用于排查「是不是我拦的」 | |
| 关闭桌面小组件刷新 | 桌面小组件的定时刷新 | 小组件恢复刷新,耗电上升 | |
| 关闭云控调度池 | LotusPool 云控调度池 | 云端下发的周期任务恢复 | |
| 埋点与广告 | 关闭阿里埋点 Analytics | 阿里 Analytics 埋点初始化 | 埋点恢复上报 |
| 关闭开屏广告请求 | 开屏广告请求 | 开屏广告可能重新出现 | |
| 关闭广告曝光上报 | 广告曝光上报 | 曝光数据恢复上报 | |
| 地图 | 启用第三方标注过滤 | 过滤第三方 POI 标注(默认就是关闭,需手动开启) | 不参与拦截;注意开启后可能影响帧率 |
顶部还有一个 「一键省电(全部开启拦截)」 按钮,一次把其中 9 项打开 (不含「子进程拦截」总闸和「第三方标注过滤」——前者是排查开关,后者默认就该关着)。
- 本页开关改动后,需要「强制停止 + 重新打开」目标 App 才生效。 这样设计的好处是:关闭的项在运行时彻底不加载对应实现,零性能开销,而不是「加载了再拦掉」。
- 代价要提前想清楚:关掉「推送长连接」之后,行程提醒、活动推送、消息中心、家人地图消息会收不到。 想恢复就把那一项拨回「开」,强停重开即可。
- 每天自动检查一次(24 小时节流,不会频繁请求)。
- 有新版本时,面板顶部的版本胶囊会变红,并挂一个「新版本」小标。
- 每个新版本只提示一次,不打扰。
- 也可以手动查:其他 → 检查更新,四种状态:
检查中/有新版本/已是最新/线上版本未获取。 - 查到新版本后会出现 「镜像下载」 按钮。
国内镜像优先:更新检查与下载会优先走国内镜像
(gh-proxy.com、gh.llkk.cc、ghfast.top、ghproxy.net、jsDelivr),
没有 VPN 也能正常查到新版本。
Q1. 长按「我的」没反应,面板打不开? 确认你长按的是底部标签栏里的「我的」(不是页面内的头像),并且按住约 1 秒再松手。 模块版还要确认两件事:框架里模块已启用、目标地图已加入作用域,并且重启过目标 App。
Q2. 顶部显示 ○ 只读 · 需要目标 App 运行中?
面板是靠目标 App 的进程读写配置的。把地图切到前台(或重新打开一次),状态会变成 ● 已连接 · 可写入。
Q3. 显示 ● 已连接 · 写入被拒?
说明配置没能写进去。先强制停止目标 App 再重开;仍然如此,检查系统是否限制了该应用的后台/存储权限。
Q4. 我把悬浮球关了,怎么找回来? 长按底部「我的」标签约 1 秒,面板会重新出现,然后去「外观」里重新打开悬浮窗。
Q5. 开关点了,但界面没变化? 分两种情况:
- 「省电 / 后台」页的开关:必须强制停止并重开目标 App 才生效(这些项是安装期/启动期门控)。
- 其他页的开关:多数立即生效;地图上的标注类改动,需要重新进入一次地图页。
Q6. 推送收不到了? 去「省电」页把 关闭推送长连接 和 关闭推送消息处理 拨回「关」,然后强停重开。 这是省电的代价,取舍由你决定。
Q7. 检查更新一直显示「线上版本未获取」? 通常是网络问题。稍后再试;模块会优先走国内镜像,但首次检查仍需要能访问 GitHub 或任一镜像。
Q8. 装内置版提示「应用未安装 / 签名不一致」? 内置版重新签过名,必须先卸载官方高德地图再安装。卸载会清除登录态与离线地图。
内置版是重新签名过的,理论上商店更新不了它;但部分机型的应用商店/高德自更新会直接覆盖安装官方版,表现为"模块突然消失了"。
处理:在应用商店里把「高德地图」的自动更新关掉,或在高德的设置里关闭自动更新。之后重新安装一次内置版即可。
说明当前进程里拿不到可写的配置通道。依次尝试:
- 先打开一次目标地图 App,再长按「我的」打开面板(首次冷启动时通道可能还没就绪);
- 模块版用户:在 LSPosed / Vector 里确认本模块已启用,且作用域包含对应地图的包名,然后强制停止地图 App 重开;
- 仍然不行就重装模块。
模块会优先用框架的远程配置通道;拿不到时自动降级为应用进程内的本地配置(面板右上角会显示「可写入(本地)」)。降级模式下面板的读取、保存都正常,但少数在启动极早期安装的拦截项可能仍按默认值运行 —— 关掉再重开一次地图 App 即可。
模块本身的开销可以忽略:不创建任何线程,静置 60 秒模块日志只有 0 ~ 3 条。
高德地图(17.02.0.1541)实测:
| 指标 | 结果 |
|---|---|
| 首页地图拖动帧间隔 p99 | 17.3 ms |
| 掉帧率 | 0.0 % |
| 帧率 | 稳定 60 fps |
| 冷启动耗时(中位) | ~790 ms |
- 有问题、有建议、想第一时间拿到新版本:Telegram 交流群
- Bug 与功能请求:请走 GitHub Issues
- 觉得有用的话,点个 Star 就是最大的支持 ⭐
- 面板的分类标签栏,从屏幕最右约 160px 起手滑动不了(系统手势区冲突)。 绕过办法很简单:直接点 chip 就能跳到对应分类。
- 灵动岛 / 手表联动:如果官方原包上这些功能同样不可用,那属于设备侧配置问题,与本模块无关。
本项目仅供学习与技术交流使用,不得用于商业用途。 所有商标、素材与数据归各自权利人所有。请支持正版,通过官方渠道使用地图服务。 使用本模块所产生的一切后果由使用者自行承担。