lamda FIRERPA 上手教程:一个 Python 客户端跑通 Android UI 自动化与一键抓包
【免费下载链接】lamdaAndroid Full-Stack Device Control Platform: WebRTC/H.264 remote desktop, UI/OCR/image-matching automation, one-click MITM, built-in Frida, proxy/VPN/frp/P2P networking, MCP/Agent, 160+ APIs, designed for multi-device clusters and engineered deployments.项目地址: https://gitcode.com/GitHub_Trending/la/lamda
lamda(FIRERPA)是一个 Android 全栈设备控制平台:lamda-server 直接运行在设备上,PC 端用 Python 客户端通过 gRPC 统一调度 UI 自动化、一键 MITM 抓包、内置 Frida 与代理组网。它适合做安全测试、逆向分析和真机批量自动化的开发者。
第一步:5 分钟跑通链路
读完这一节,你能在 PC 上装好 lamda 客户端,并用 4 行代码验证设备 gRPC 链路在线。
① 环境准备
- PC 端 Python 3.6+
- 目标 Android 设备已部署 lamda-server(App 一键部署、Magisk 模块或手动解压均可),服务默认监听 65000 端口
② 安装
这段命令安装 PC 端客户端库,默认不含 Frida 依赖:
pip install lamda安装完成应看到Successfully installed lamda-x.x。需要 Frida Hook 能力时改用pip install "lamda[full]",会附带 frida 17.x 依赖。
③ 最小验证
这段代码连接设备并读取系统设置应用的版本号:
from lamda.client import Device d = Device("localhost") # 连接设备,默认端口 65000 app = d.application("com.android.settings") print(app.is_installed()) # True 表示设备在线 print(app.info().versionName) # 输出应用版本号跑完应看到True和形如13的版本号,说明 PC 到设备的链路已通。
第二步:确认它是否解决你的问题
这一节把常见需求和 lamda 的解法一一对上,用它判断功能是否覆盖你的场景。
- 痛点:反复启动 App 后点击、输入、滑动真机界面 → 解法:
d(text=..., resourceId=..., description=...)定位控件,直接click()/set_text() - 痛点:抓包要手工装证书、切代理,收尾易漏 → 解法:一键 MITM 自动装系统根证书、配代理,退出时自动恢复网络
- 痛点:想用 Frida 但不想单独部署 frida-server → 解法:服务端内置最新 Frida,远程桌面终端内直接可用
- 痛点:多设备批量调度缺统一入口 → 解法:client/server 架构,160+ API 走同一条 gRPC 链路
第三步:走两个最常见的实战任务
读完这一节,你能用一个 Python 脚本完成真机搜索全流程,并用一条命令完成带自动还原的抓包。
实战任务一:自动启动 App 并完成一次搜索
目标:打开淘宝、在搜索框输入关键词并点击搜索,全程无需人工操作。
这段脚本基于官方示例 examples/search_in_taobao.py,完整走一遍启动、定位、输入、点击、等待与滑动:
from lamda.client import Device import time d = Device("localhost") app = d.application("com.taobao.taobao") app.stop() time.sleep(1.5) app.start() time.sleep(10) # 等待 App 完全启动 d(description="搜索栏").click() # 激活搜索输入 d(resourceId="com.taobao.taobao:id/searchbtn").wait_for_exists(15*1000) d(resourceId="com.taobao.taobao:id/searchEdit").set_text("苹果手机") d(resourceId="com.taobao.taobao:id/searchbtn").click() d(description="筛选").wait_for_exists(15*1000) d().swipe() # 简单滑动一页跑完应看到设备自动完成整个搜索流程,结果页出现商品列表并完成一次滑动。
实战任务二:一键 MITM 抓包,退出自动还原
目标:临时抓 App 流量,退出后设备网络自动恢复,不留手工清理项。
这条命令运行仓库自带脚本,自动安装系统级根证书、配置代理并启动 mitmweb,支持全局或按包名抓包:
python tools/startmitm.py跑完应看到install cacert与set proxy日志,浏览器打开 mitmweb 端口即可看请求;按 Ctrl+C 退出时会自动卸载根证书并关闭代理。
第四步:把官方示例改造成你的脚本
这一节教你只改 5 个关键行,把官方搜索示例变成你自己目标应用的脚本。完整骨架如下:
from lamda.client import Device import time d = Device("localhost") # 设备地址 app = d.application("com.taobao.taobao") # 目标包名 if not app.is_installed(): # 安装校验 exit(1) app.stop(); time.sleep(1.5) app.start(); time.sleep(10) # 等 App 完全启动 d(description="搜索栏").click() # 控件定位 d(resourceId="com.taobao.taobao:id/searchbtn").wait_for_exists(15*1000) d(resourceId="com.taobao.taobao:id/searchEdit").set_text("替换成你的关键词") d(resourceId="com.taobao.taobao:id/searchbtn").click() d().swipe()跑完应看到目标 App 按你的关键词完成搜索,行为与任务一一致。
关键行说明:
d.application("com.taobao.taobao")— 改成你目标 App 的包名if not app.is_installed(): exit(1)— 安装/版本校验,目标确定后可删掉d(description=...)— 按控件属性定位,支持 text、resourceId、description 等匹配set_text("...")— 换成你要输入的关键词wait_for_exists(15*1000)— 等待元素出现,单位毫秒,防止慢设备点空
替换清单:
- 包名:
com.taobao.taobao→ 你的目标包名 - resourceId:
searchEdit/searchbtn→ 你目标 App 的控件 id - description:
搜索栏/筛选→ 你目标 App 的控件描述 - 关键词:
替换成你的关键词→ 你的搜索词 - 地址:
Device("localhost")→ 你的设备 IP(跨机时)
常见坑位与绕过方法
遇到前面的报错时,直接在这里查原因和一行解法。
Q:连接 Device 超时 A:设备未部署 lamda-server,或地址/端口不对。确认设备服务已启动,检查Device()地址与默认端口 65000。
Q:示例脚本报please install taobao 10.48.0并退出 A:设备应用版本与示例要求不一致。设备安装 10.48.0,或删掉示例中的版本校验段。
Q:import frida报模块缺失 A:默认安装不含 frida 依赖。pip install "lamda[full]"。
Q:Windows 上没有 Python 环境抓不了包 A:缺少 Python 运行时。改用自带的startmitm.exe。
Q:pip 安装报 Requires-Python A:本机 Python 低于 3.6。升级到 Python 3.6+ 后重新安装。
Q:抓包结束后设备仍走代理或证书残留 A:直接 kill 进程跳过了 cleanup。用 Ctrl+C 正常退出,脚本会自动卸载根证书并关闭代理。
参考资料
命令速查按分组列出,写脚本前先查这里。
- 安装类:
pip install lamda— 安装 PC 端客户端(Python 3.6+)pip install "lamda[full]"— 附加安装 frida 17.x 依赖
- 连接类:
Device("localhost")— 连接设备,默认端口 65000Device("192.168.x.x", port=65000)— 连接指定地址与端口的设备
- 自动化类:
d.application(pkg)— 获取应用对象app.is_installed() / app.stop() / app.start()— 检查安装 / 停止 / 启动应用d(text=..., resourceId=..., description=...)— 按控件属性定位元素element.click() / element.set_text("...")— 点击 / 输入文本element.wait_for_exists(15000)— 等待元素出现,单位毫秒d().swipe()— 执行一次滑动
- 调试类:
python -m lamda.client -port 65000— 进入交互式控制台,已建立设备连接python tools/startmitm.py— 一键 MITM 抓包脚本
仓库关键文件:
- examples/search_in_taobao.py — 搜索流程完整示例
- examples/activity_jump.py — Activity 跳转示例
- tools/startmitm.py — 一键抓包脚本
- examples/ — 更多自动化与 tflite 推理示例
下一步:把 examples/search_in_taobao.py 原样跑通一遍,再按替换清单把包名和选择器换成你目标应用的控件。
【免费下载链接】lamdaAndroid Full-Stack Device Control Platform: WebRTC/H.264 remote desktop, UI/OCR/image-matching automation, one-click MITM, built-in Frida, proxy/VPN/frp/P2P networking, MCP/Agent, 160+ APIs, designed for multi-device clusters and engineered deployments.项目地址: https://gitcode.com/GitHub_Trending/la/lamda
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考