v1.0.5
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)