Skip to main content

Multi-platform disguise automation — ADB gesture disguise & WeChat scroll navigation

Project description

mumdad — Multi-platform disguise automation

Android / iOS / HarmonyOS / Web disguise automation toolkit. Built for mobile APP data collection with anti-detection gestures and device-adaptive scroll navigation.

Python


一、项目介绍

mumdad 是一个多平台自动化伪装工具包,核心解决移动端 APP 自动化采集中的防风控和手势兼容性问题。

核心模块

模块 说明
adb ADB 伪装客户端 + scroll_down/up 手势翻页(Android 版本自适应)
wechat 微信主界面会话列表归位(from×L 随机采样 + dHash 重试 + 冷启动兜底)

二、安装

pip install mumdad

OpenCV 与 python-ai-base:v1.0 对齐:依赖 opencv-contrib-python==4.10.0.84

或从 GitHub:

pip install git+https://github.com/yuyidream/mumdad.git

三、核心特性

3.1 DisguiseAdbClient — ADB 伪装客户端

自动注入人类操作模拟,防止 APP 风控检测:

  • 随机延迟:每次操作前注入 80~350ms 随机 sleep
  • 坐标微偏移:tap 坐标 ±5px 随机 jitter
  • duration 随机化:swipe 时长 + 0~80ms 随机
  • key_event 专门延迟:BACK/HOME 键注入 80~200ms 专用延迟
from mumdad.android.base.adb import DisguiseAdbClient

adb = DisguiseAdbClient("device_serial")
adb.click(540, 1200)  # 自动注入延迟 + jitter
adb.swipe(540, 2000, 540, 500, duration_ms=400)  # duration 自动加 0~80ms

3.2 session_list_content_scroll_down/up — 会话列表手势翻页

基于 from×L 模型,Android 版本自适应:

Android 版本 L 参数 适用设备
< 13 [66%, 68%] D1 (MI 8 UD, Android 10)
≥ 13 [51%, 53%] D2 (HyperOS 16) / D3 (Harmony 13)

关键约束:velocity ≤ 1.0 px/ms(防 Android fling 惯性)。

from mumdad.android.base.adb import session_list_content_scroll_down, session_list_content_scroll_up

adb = DisguiseAdbClient("device_serial")
w, h = adb.wm_size()

# 翻下一页
session_list_content_scroll_down(adb, screen_w=w, screen_h=h)

# 回翻上一页
session_list_content_scroll_up(adb, screen_w=w, screen_h=h)

3.3 reposition_wechat_to_list_top — 微信会话列表归位

从任意 WeChat 状态归位到主界面会话列表最顶端。

两阶段流程

  1. 导航:截图 → 层级检测 → 导航到 L1 chat_list (A/B/C)
  2. 无限下拉锚点:from×L 随机采样,不限次数一直下拉直到出现「最近」页面或 deadline_s 到期。期间连续 2 帧 dHash Hamming ≤ 3 且不在「最近」页面时,触发 back_recover() 冷启动恢复后继续。
from mumdad.android.wechat.reposition import reposition_wechat_to_list_top

result = reposition_wechat_to_list_top(
    adb, scale_w=1.0, screen_w=1080, screen_h=2248,
    deadline_s=60.0,
)
print(f"归位: {'OK' if result.ok else 'FAIL'} ({result.reason})")

四、目录结构

mumdad/
├── android/
│   ├── adb/                      ← ADB 伪装 + scroll_down/up
│   │   ├── coordinate.py         ← 坐标 jitter (±5px)
│   │   ├── random_delay.py       ← 随机延迟 (80~350ms)
│   │   ├── disguise_client.py    ← DisguiseAdbClient + Debug
│   │   ├── scroll.py             ← session_list_content_scroll_down/up
│   │   └── _raw_adb.py           ← 原生 ADB 包装器
│   └── wechat/
│       └── reposition.py         ← 微信会话列表归位
├── docs/
│   └── adr/
│       └── disguise_android_feasibility.md  ← 技术可行性评估
├── harmonyos/                    ← 占位
├── ios/                          ← 占位
├── web/                          ← 占位
├── pyproject.toml
├── README.md
└── LICENSE

五、设备验证

设备 Android 分辨率 微信版本 验证结果
D1 (MI 8 UD) 10 1080×2248 8.0.71 ✅ 10 轮 100%
D2 (25113PN0EC) 16 1220×2656 8.0.71 ✅ 10 轮 100%
D3 (WDY-AN00) 13 720×1612 8.0.72 ✅ 10 轮 100%

六、相关文档

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mumdad-0.1.16.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mumdad-0.1.16-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file mumdad-0.1.16.tar.gz.

File metadata

  • Download URL: mumdad-0.1.16.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for mumdad-0.1.16.tar.gz
Algorithm Hash digest
SHA256 a545dbd911ceb19b460d3ceab1404f4c01dfd7da832b616f4d38bba83793d1d2
MD5 59f4011a44883972dc899c8e157fa797
BLAKE2b-256 a71bb0cf062b34bad3c8492f3badd93fdf9d39f9d4b705f4467ad47aa8c68746

See more details on using hashes here.

File details

Details for the file mumdad-0.1.16-py3-none-any.whl.

File metadata

  • Download URL: mumdad-0.1.16-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for mumdad-0.1.16-py3-none-any.whl
Algorithm Hash digest
SHA256 3430f180dc13e18e671b68851780a8f0be11f970a76f7ce3c2e177a8e22e15ae
MD5 167781aca07f2e933d9c5b635400217d
BLAKE2b-256 190e2025022575553d62b5989ee46f1c3f0c1d9d8a6a8466434fcaf318ab4f60

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page