Skip to content

v1.0.5

Choose a tag to compare

@ldxm666 ldxm666 released this 11 Sep 13:22
· 18 commits to main since this release

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)