Skip to content

Commit 14a9ff1

Browse files
committed
8.5 auto-commit
1 parent 4acec6c commit 14a9ff1

10 files changed

+68
-16
lines changed

CHANGELOG.txt

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
8.5
2+
* 优化剪切板共享逻辑
3+
* 新增 Frida 脚本崩溃日志
4+
* 已支持安卓 15
5+
16
8.0
27
* 接口全面支持多开应用
38
* 远程桌面支持共享剪切板

README.md

+12-9
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
11
<p align="center">
2-
<img src="image/logo.svg" alt="LAMDA" width="345">
2+
<img src="image/logo.svg" alt="FIRERPA" width="345">
33
</p>
44

55
<p align="center">安卓 RPA 机器人框架,下一代移动端数据自动化机器人</p>
66

77
<p align="center">
88
<img src="https://img.shields.io/badge/python-3.6+-blue.svg?logo=python&labelColor=yellow" />
9-
<img src="https://img.shields.io/badge/android-6.0+-blue.svg?logo=android&labelColor=white" />
9+
<img src="https://img.shields.io/badge/android-6.0--15-blue.svg?logo=android&labelColor=white" />
1010
<img src="https://img.shields.io/badge/root%20require-red.svg?logo=android&labelColor=black" />
1111
<img src="https://img.shields.io/github/downloads/rev1si0n/lamda/total" />
1212
<img src="https://img.shields.io/github/v/release/rev1si0n/lamda" />
1313
</p>
1414

15-
<p align="center"><a href="https://device-farm.com/doc/index.html">使用文档</a> | <a href="https://t.me/lamda_dev">TELEGRAM</a> | <a href="https://lamda.run/join/qq">QQ 群组</a> | <a href="https://device-farm.com/doc/版本历史.html">更新历史</a></p>
15+
<p align="center"><a href="https://device-farm.com/doc/index.html">使用文档</a> | <a href="https://t.me/lamda_dev">TELEGRAM</a> | <a href="https://qm.qq.com/q/zDaX2a594I">QQ 群组</a> | <a href="https://device-farm.com/doc/版本历史.html">更新历史</a></p>
1616

17-
智能机的崛起,传统网页端的普及度也开始显著减弱,数据与应用正加速向移动端转移。越来越多的人选择通过智能手机和平板等移动设备来获取信息和服务。随着移动设备的普及,用户享受到更便捷访问体验,传统的网页内容模式面临重新审视。与此同时,数据采集的技术也亟需适应这一趋势。过去,许多数据采集工具专注于网页内容,在移动端环境中,尤其是在移动端封闭的黑盒中,现今的常规采集技术也面临着新的挑战。LAMDA 的诞生,为这一切创造了可能
17+
智能机崛起,传统网页端的普及度也开始显著减弱,数据与应用正加速向移动端转移。越来越多的人选择通过智能手机和平板等移动设备来获取信息和服务。随着移动设备的普及,用户享受到更便捷访问体验,传统的网页内容模式面临重新审视。与此同时,数据采集的技术也亟需适应这一趋势。过去,许多数据采集工具专注于网页内容,在移动端环境中,尤其是在移动端封闭的黑盒中,现今的常规技术也面临着新的挑战,FIRERPA 创造了可能,将这一切变得更加简单快捷
1818

19-
LAMDA 是**安卓领域的集大成者**,设计为减少**安全分析**及**应用测试**或**自动化**工作的时间和琐碎问题,经过超 500 台设备的生产环境考验,稳定应用于多个大型系统,包括自动化取证,云平台,数据采集,合规分析等,具备商业级软件的质量和稳定性,仅需 root 权限即可正常运行。具备 ARM/X86 全架构,安卓 6.0-14 的广泛兼容性,支持 **模拟器**、**真机**、**云手机**、 **WSA**(Windows Subsystem for Android™️)、**RK开发板** (所有 ARM 架构)以及 **Redroid** 等大多数运行安卓系统的设备。为**移动端 RPA 数据采集**提供稳定的解决方案,以**编程化**的**接口**替代大量手动操作,**易部署**,没有那些复杂花哨不跨平台的安装流程,你所需要的能力他大概率能做到并且做的更好。他并不是一个单一功能的框架,他是集 Appium、uiautomator **自动化**的超集同时具备**逆向**领域如 **Hook** **抓包** **证书安装** **组网** **API跟踪** **手机自控** 等等各种能力的框架。当然,LAMDA 可以做到的远不止于此,你可以阅读使用文档尽情探索他的所有能力。
19+
FIRERPA 是**安卓领域的集大成者**,设计为减少**安全分析**及**应用测试**或**自动化**工作的时间和琐碎问题,经过超 500 台设备集群的生产环境考验,稳定应用于多个大型系统,包括自动化取证,云平台,数据采集,合规分析等,完全商业级软件的质量和稳定性,仅需 root 权限即可正常运行。具备 **ARM/X86** 全架构,安卓 **6.0-15** 的广泛兼容性([16 KB page size](https://developer.android.com/guide/practices/page-sizes) 的安卓 15 适配中),支持 **模拟器**、**真机**、**云手机**、 **WSA**(Windows Subsystem for Android™️)、**RK开发板** (所有 ARM 架构)以及 **Redroid** 等大多数运行安卓系统的设备。为**移动端 RPA 和数据自动化**提供稳定的解决方案,以**编程化**的**接口**替代大量手动操作,**易部署**,没有那些复杂花哨不跨平台的安装流程,你所需要的能力他大概率能做到并且做的更好。他并不是一个单一功能的框架,他是集 Appium、uiautomator **自动化**的超集同时具备**逆向**领域如 **Hook** **抓包** **证书安装** **组网** **API跟踪** **手机自控** 等等各种能力的框架。当然,FIRERPA 可以做到的远不止于此,你可以阅读使用文档尽情探索他的所有能力。
2020

2121

22+
<h3><p align="center">适用广泛的服务架构设计</p></h3>
2223

23-
<h3><p align="center">丰富的设备编程接口</p></h3>
24+
<p align="center">FIRERPA 不同于任何其他同类或者子集软件,在设计之初即考虑到了各种可能的应用环境,可在非侵入的情况下运行在当下绝大部分的安卓设备内,即插即用,没有任何外部依赖,无需任何多余设置,原生即是为大型的业务场景设计,易于系统化的管理及更新。而此时,其他具备相似功能的软件还在经历掉线、不稳定、兼容性差、无人维护、管理难度大等各种问题。</p>
2425

25-
<p align="center">提供多达 160 条编程 API 接口,让你可以对安卓设备进行无微不至的管理和操作,提供了包括命令执行,系统设置,系统状态,应用相关,自动化相关,代理以及文件等十几个大类的接口。同时提供了封装完整的 Python 库让你可以快速上手使用。</p>
26+
<h3><p align="center">丰富编程接口为业务赋能</p></h3>
27+
28+
<p align="center">提供多达 160 条编程 API 接口,让你可以对安卓设备进行无微不至的管理和操作,提供了包括命令执行,系统设置,系统状态,应用相关,自动化控制,代理以及文件等十几个大类的接口。同时提供了封装完整的 Python 库让你可以快速上手使用。规范及稳定的服务和接口让你可以无忧的通过代码控制每一个细节,甚至可以让其和 AI 进行互联,让大模型自动编写以及执行任务。</p>
2629

2730
<h3><p align="center">简洁易用的远程桌面</p></h3>
2831

@@ -32,12 +35,12 @@ LAMDA 是**安卓领域的集大成者**,设计为减少**安全分析**及**
3235

3336
<h3><p align="center">一键中间人流量分析及更多其他功能</p></h3>
3437

35-
支持常规以及国际APP流量分析,DNS流量分析,得益于 [mitmproxy flow hook](https://docs.mitmproxy.org/stable/api/events.html),你可以对任何请求做到最大限度的掌控,mitmproxy 功能足够丰富,你可以使用 Python 脚本实时修改或者捕获应用的请求,也可以通过其 `Export` 选项导出特定请求的 `curl` 命令或者 `HTTPie` 命令,分析重放、拦截修改、功能组合足以替代你用过的任何此类商业/非商业软件。如果你仍不清楚 mitmproxy 是什么以及其具有的能力,请务必先查找相关文档,因为 LAMDA 将会使用 mitmproxy 为你展现应用请求。
38+
支持常规以及国际APP流量分析,DNS流量分析,得益于 [mitmproxy flow hook](https://docs.mitmproxy.org/stable/api/events.html),你可以对任何请求做到最大限度的掌控,mitmproxy 功能足够丰富,你可以使用 Python 脚本实时修改或者捕获应用的请求,也可以通过其 `Export` 选项导出特定请求的 `curl` 命令或者 `HTTPie` 命令,分析重放、拦截修改、功能组合足以替代你用过的任何此类商业/非商业软件。如果你仍不清楚 mitmproxy 是什么以及其具有的能力,请务必先查找相关文档,因为 FIRERPA 将会使用 mitmproxy 为你展现应用请求。
3639

3740
<p align="center">
3841
<img src="image/mitm.gif" alt="动图演示" width="95%">
3942
</p>
4043

4144
<p align="center">
42-
当然,LAMDA 提供的能力不止于这些,由于篇幅较长将不在此罗列,他是你强有力的设备控制及管理工具,如果你感兴趣,请转到 使用文档。
45+
当然,FIRERPA 提供的能力不止于这些,他是你强有力的设备控制及管理工具,感兴趣请转到 使用文档。
4346
</p>

SECURITY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
| Version | Supported |
66
| ------- | ------------------ |
7-
| 7.x | :white_check_mark: |
7+
| 8.x | :white_check_mark: |
88

99
## Reporting a Vulnerability
1010

image/detail.png

-216 KB
Binary file not shown.

image/wx.png

-38.1 KB
Binary file not shown.

lamda/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
#
33
# Distributed under MIT license.
44
# See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5-
__version__ = "8.0"
5+
__version__ = "8.5"

lamda/client.py

+36-5
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@
8888
"Orientation",
8989
"OpenVPNProfile",
9090
"GproxyProfile",
91+
"TouchBuilder",
9192
"Selector",
9293
"TouchWait",
9394
"TouchMove",
@@ -256,6 +257,7 @@ def corner(b, position):
256257
TouchSequence.save = touchSequenceSave
257258
TouchSequence.appendAction = touchSequenceAppendAction
258259
TouchSequence.appendDown = touchSequenceAppendDown
260+
TouchSequence.appendMove = touchSequenceAppendMove
259261
TouchSequence.appendWait = touchSequenceAppendWait
260262
TouchSequence.appendUp = touchSequenceAppendUp
261263

@@ -328,6 +330,29 @@ def _get_key(self, key):
328330
return key
329331

330332

333+
class TouchBuilder(object):
334+
def __init__(self):
335+
self.s = TouchSequence()
336+
def down(self, x, y, pressure=50, track=0):
337+
self.s.appendDown(tid=track, x=x, y=y,
338+
pressure=pressure)
339+
return self
340+
def move(self, x, y, pressure=50, track=0):
341+
self.s.appendMove(tid=track, x=x, y=y,
342+
pressure=pressure)
343+
return self
344+
def up(self, track=0):
345+
self.s.appendUp(tid=track)
346+
return self
347+
def wait(self, mills):
348+
self.s.appendWait(wait=mills)
349+
return self
350+
def build(self):
351+
sequence = TouchSequence()
352+
sequence.CopyFrom(self.s)
353+
return sequence
354+
355+
331356
class ClientLoggingInterceptor(ClientInterceptor):
332357
def truncate_string(self, s):
333358
return "{:.1024}...".format(s) if len(s) > 1024 else s
@@ -2103,6 +2128,15 @@ def __init__(self, host, port=65000,
21032128
policy["maxBackoff"] = "15s"
21042129
config = json.dumps(dict(methodConfig=[{"name": [{}],
21052130
"retryPolicy": policy,}]))
2131+
option = dict()
2132+
option["grpc.max_send_message_length"] = 64*1024*1024
2133+
option["grpc.max_receive_message_length"] = 128*1024*1024
2134+
option["grpc.keepalive_time_ms"] = 30*1000
2135+
option["grpc.keepalive_timeout_ms"] = 15*1000
2136+
option["grpc.keepalive_permit_without_calls"] = True
2137+
option["grpc.max_pings_without_data"] = 0
2138+
option["grpc.service_config"] = config
2139+
option["grpc.enable_http_proxy"] = 0
21062140
if certificate is not None:
21072141
with open(certificate, "rb") as fd:
21082142
key, crt, ca = self._parse_certdata(fd.read())
@@ -2112,13 +2146,10 @@ def __init__(self, host, port=65000,
21122146
self._chan = grpc.secure_channel(self.server, creds,
21132147
options=(("grpc.ssl_target_name_override",
21142148
self._parse_cname(crt)),
2115-
("grpc.service_config", config),
2116-
("grpc.enable_http_proxy",
2117-
0)))
2149+
*tuple(option.items()),))
21182150
else:
21192151
self._chan = grpc.insecure_channel(self.server,
2120-
options=(("grpc.service_config", config),
2121-
("grpc.enable_http_proxy", 0))
2152+
options=(*tuple(option.items()),)
21222153
)
21232154
session = session or uuid.uuid4().hex
21242155
interceptors = [ClientSessionMetadataInterceptor(session),

properties.local.example

+3
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ touch.backend=system
5151
# please set this option to true.
5252
dirtyfix_open_app=false
5353

54+
# Set the log file location (directory must exists)
55+
logfile=/data/local/tmp/server.log
56+
5457
# ---------- OpenVPN Configuration ----------
5558
# Do not manually write the following configuration. You should use
5659
# our accompanying OpenVPN server setup solution to set it up and

scripts/disable_flag_secure.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# EXAMPLE EXTENSION OF FIRERPA (https://github.com/firerpa/lamda)
12
# This script is used to disable the android FLAG_SECURE flag.
23
# Replace YOUR_APP_ID with the ID (eg. com.android.settings) of your target application.
34
enable: true
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# EXAMPLE EXTENSION OF FIRERPA (https://github.com/firerpa/lamda)
2+
# This script is used to disable simple ssl pinning (checkServerTrusted).
3+
# Replace YOUR_APP_ID with the ID (eg. com.android.settings) of your target application.
4+
enable: true
5+
application: "YOUR_APP_ID"
6+
version: "N/A"
7+
script: !!binary "SmF2YS5wZXJmb3JtKGZ1bmN0aW9uKCkgewpKYXZhLnVzZSgiYW5kcm9pZC5zZWN1cml0eS5uZXQuY29uZmlnLlJvb3RUcnVzdE1hbmFnZXIiKS5jaGVja1NlcnZlclRydXN0ZWQub3ZlcmxvYWQoIltMamF2YS5zZWN1cml0eS5jZXJ0Llg1MDlDZXJ0aWZpY2F0ZTsiLCAiamF2YS5sYW5nLlN0cmluZyIsICJqYXZhLm5ldC5Tb2NrZXQiKS5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7CiAgICAgICAgcmV0dXJuCn0KfSkK"
8+
standup: 0
9+
spawn: false

0 commit comments

Comments
 (0)