news 2026/10/4 1:40:40

lamda FIRERPA 上手教程:一个 Python 客户端跑通 Android UI 自动化与一键抓包

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
lamda FIRERPA 上手教程:一个 Python 客户端跑通 Android UI 自动化与一键抓包

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")— 连接设备,默认端口 65000
    • Device("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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 1:39:35

PHP 核心机制解析:FastCGI 与 PHP-FPM

在深入探讨 FastCGI 与 PHP-FPM 之前,需要先梳理 PHP 的运行环境及其与 Web 服务器的交互原理, 本文参考了关于 mod_php、mod_fastcgi 与 php-fpm 的对比分析,以及 Nginx 实战配置等相关资料,旨在系统性地解析这些核心概念 1.Web 服务器与 PH…

作者头像 李华
网站建设 2026/10/4 1:39:01

AOCV签核实战:物理变异建模与三维时序修正技术

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:37:45

VC6.0迷宫小游戏开发实战:递归回溯算法与MFC界面实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:37:43

C#上位机TCP通讯库卡机器人:实时位置回传与运动控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:37:36

垃圾桶满溢检测实战:YOLOv5数据集制作、训练调参与部署排障

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:37:03

OpenCV高频API避坑指南:从图像加载到特征匹配的工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华