lamda 7.55__tar.gz → 7.60__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. {lamda-7.55 → lamda-7.60}/PKG-INFO +1 -1
  2. {lamda-7.55 → lamda-7.60}/README.md +3 -1
  3. {lamda-7.55 → lamda-7.60}/lamda/__init__.py +1 -1
  4. {lamda-7.55 → lamda-7.60}/lamda/client.py +35 -3
  5. {lamda-7.55 → lamda-7.60}/lamda/rpc/services.proto +1 -0
  6. {lamda-7.55 → lamda-7.60}/lamda/rpc/uiautomator.proto +33 -0
  7. {lamda-7.55 → lamda-7.60}/lamda.egg-info/PKG-INFO +1 -1
  8. {lamda-7.55 → lamda-7.60}/lamda/bcast.proto +0 -0
  9. {lamda-7.55 → lamda-7.60}/lamda/const.py +0 -0
  10. {lamda-7.55 → lamda-7.60}/lamda/exceptions.py +0 -0
  11. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/any.proto +0 -0
  12. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/api.proto +0 -0
  13. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/compiler/plugin.proto +0 -0
  14. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/descriptor.proto +0 -0
  15. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/duration.proto +0 -0
  16. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/empty.proto +0 -0
  17. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/field_mask.proto +0 -0
  18. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/source_context.proto +0 -0
  19. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/struct.proto +0 -0
  20. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/timestamp.proto +0 -0
  21. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/type.proto +0 -0
  22. {lamda-7.55 → lamda-7.60}/lamda/google/protobuf/wrappers.proto +0 -0
  23. {lamda-7.55 → lamda-7.60}/lamda/rpc/application.proto +0 -0
  24. {lamda-7.55 → lamda-7.60}/lamda/rpc/debug.proto +0 -0
  25. {lamda-7.55 → lamda-7.60}/lamda/rpc/file.proto +0 -0
  26. {lamda-7.55 → lamda-7.60}/lamda/rpc/policy.proto +0 -0
  27. {lamda-7.55 → lamda-7.60}/lamda/rpc/proxy.proto +0 -0
  28. {lamda-7.55 → lamda-7.60}/lamda/rpc/settings.proto +0 -0
  29. {lamda-7.55 → lamda-7.60}/lamda/rpc/shell.proto +0 -0
  30. {lamda-7.55 → lamda-7.60}/lamda/rpc/status.proto +0 -0
  31. {lamda-7.55 → lamda-7.60}/lamda/rpc/storage.proto +0 -0
  32. {lamda-7.55 → lamda-7.60}/lamda/rpc/types.proto +0 -0
  33. {lamda-7.55 → lamda-7.60}/lamda/rpc/util.proto +0 -0
  34. {lamda-7.55 → lamda-7.60}/lamda/rpc/wifi.proto +0 -0
  35. {lamda-7.55 → lamda-7.60}/lamda/types.py +0 -0
  36. {lamda-7.55 → lamda-7.60}/lamda.egg-info/SOURCES.txt +0 -0
  37. {lamda-7.55 → lamda-7.60}/lamda.egg-info/dependency_links.txt +0 -0
  38. {lamda-7.55 → lamda-7.60}/lamda.egg-info/not-zip-safe +0 -0
  39. {lamda-7.55 → lamda-7.60}/lamda.egg-info/requires.txt +0 -0
  40. {lamda-7.55 → lamda-7.60}/lamda.egg-info/top_level.txt +0 -0
  41. {lamda-7.55 → lamda-7.60}/setup.cfg +0 -0
  42. {lamda-7.55 → lamda-7.60}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamda
3
- Version: 7.55
3
+ Version: 7.60
4
4
  Summary: Android reverse engineering & automation framework
5
5
  Home-page: https://github.com/rev1si0n/lamda
6
6
  Author: rev1si0n
@@ -19,7 +19,9 @@ LAMDA 是一个用于逆向及自动化的辅助框架,设计为减少安全
19
19
  <p align="center">
20
20
  <img src="image/wx.png" alt="公众号" width="234">
21
21
  </p>
22
- <p align="center"><small>关注公众号查看视频教程以及更多使用方法</small><br><small><b>知识应该是共享的,我们不会要求你为相关知识付费</b></small><br><small>文字版文档请查看<a href="https://github.com/rev1si0n/lamda/wiki">使用文档</a></small></p>
22
+ <p align="center"><small>关注公众号查看视频教程以及更多使用方法</small><br><small><b>知识应该是共享的,我们不会要求你为相关知识付费</b></small><br><br><small><a href="https://space.bilibili.com/1964784386/video">BILIBILI 同步发布</a></small><br><small>文字版文档请查看<a href="https://github.com/rev1si0n/lamda/wiki">使用文档</a></small></small>
23
+ </p>
24
+
23
25
 
24
26
  经过超 500 台设备的稳定生产环境考验,具有近乎商业级软件的质量和稳定性,仅需 root 权限即可正常运行。具备 ARM/X86 全架构,安卓 6.0-14 的广泛兼容性,支持模拟器、真机、云手机、 WSA(Windows Subsystem for Android™️)、无头开发板以及 Redroid。提供大量可编程接口,支持界面布局检视、获取/重放系统中最近的 Activity、唤起应用的 Activity 等功能。除此之外,它支持大文件上传下载,远程桌面,以及UI自动化编程接口,点击、截图、获取界面元素、执行 shell 命令、设备状态、资源读取、系统配置、属性读写、一键中间人等,可通过 SSH 或内置 ADB 登录设备终端。具备 socks5、OpenVPN 代理并可通过接口轻松设置根证书,实现中间人攻击,以及 Frida、IDA 等工具等等,同时支持定时任务、Magisk开机自启动,你可以在任何地方通过网络连接运行着 LAMDA 设备。
25
27
 
@@ -2,4 +2,4 @@
2
2
  #
3
3
  # Distributed under MIT license.
4
4
  # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
- __version__ = "7.55"
5
+ __version__ = "7.60"
@@ -74,6 +74,8 @@ __all__ = [
74
74
  "OpenVPNAuth",
75
75
  "OpenVPNEncryption",
76
76
  "OpenVPNKeyDirection",
77
+ "FindImageMethod",
78
+ "FindImageArea",
77
79
  "ToastDuration",
78
80
  "OpenVPNCipher",
79
81
  "OpenVPNProto",
@@ -230,7 +232,6 @@ TouchAction.action = property(touchActionRealAction)
230
232
 
231
233
  TouchSequence.load = classmethod(touchSequenceLoad)
232
234
  TouchSequence.save = touchSequenceSave
233
-
234
235
  TouchSequence.appendAction = touchSequenceAppendAction
235
236
  TouchSequence.appendDown = touchSequenceAppendDown
236
237
  TouchSequence.appendWait = touchSequenceAppendWait
@@ -242,6 +243,9 @@ TouchSequence.__iter__ = touchSequenceIter
242
243
  Bound.width = property(width)
243
244
  Bound.height = property(height)
244
245
 
246
+ FindImageMethod = protos.FindImageMethod
247
+ FindImageArea = protos.FindImageArea
248
+
245
249
  Bound.center = center
246
250
  Bound.corner = corner
247
251
 
@@ -853,6 +857,29 @@ class UiAutomatorStub(BaseServiceStub):
853
857
  """
854
858
  r = self.stub.getClipboard(protos.Empty())
855
859
  return r.value
860
+ def _set_target_Area(self, req, area):
861
+ req.area = area
862
+ def _set_target_Bound(self, req, bound):
863
+ req.bound.CopyFrom(bound)
864
+ def find_similar_image(self, data, threshold=0.0, distance=250,
865
+ scale=1.0, area=FindImageArea.FIA_WHOLE_SCREEN,
866
+ method=FindImageMethod.FIM_TEMPLATE):
867
+ """
868
+ 根据提供的目标图片从屏幕中获取相似图片位置
869
+ """
870
+ req = protos.FindImageRequest()
871
+ checkArgumentTyp(area, (Bound, int))
872
+ name = getattr(getattr(area, "DESCRIPTOR", None),
873
+ "name", "Area")
874
+ func = "_set_target_{}".format(name)
875
+ getattr(self, func)(req, area)
876
+ req.method = method
877
+ req.distance = distance
878
+ req.threshold = threshold
879
+ req.scale = scale
880
+ req.partial = data
881
+ r = self.stub.findSimilarImage(req)
882
+ return r.bounds
856
883
  def freeze_rotation(self, freeze=True):
857
884
  """
858
885
  锁定屏幕旋转
@@ -2022,6 +2049,12 @@ class Device(object):
2022
2049
  return self.stub("UiAutomator").wait_for_idle(timeout)
2023
2050
  def get_last_toast(self):
2024
2051
  return self.stub("UiAutomator").get_last_toast()
2052
+ def find_similar_image(self, data, threshold=0.0, distance=250,
2053
+ scale=1.0, area=FindImageArea.FIA_WHOLE_SCREEN,
2054
+ method=FindImageMethod.FIM_TEMPLATE):
2055
+ return self.stub("UiAutomator").find_similar_image(data, threshold=threshold,
2056
+ distance=distance, scale=scale,
2057
+ area=area, method=method)
2025
2058
  # watcher
2026
2059
  def remove_all_watchers(self):
2027
2060
  return self.stub("UiAutomator").remove_all_watchers()
@@ -2097,7 +2130,6 @@ if __name__ == "__main__":
2097
2130
  args = parser.parse_args()
2098
2131
 
2099
2132
  readline.parse_and_bind("tab: complete")
2100
-
2101
2133
  d = Device(args.device, port=args.port,
2102
- certificate=args.cert)
2134
+ certificate=args.cert)
2103
2135
  code.interact(local=globals())
@@ -186,6 +186,7 @@ service UiAutomator {
186
186
  rpc registerClickUiObjectWatcher(WatcherRegistRequest) returns (Boolean) {}
187
187
  rpc registerPressKeysWatcher(WatcherRegistRequest) returns (Boolean) {}
188
188
  rpc registerNoneOpWatcher(WatcherRegistRequest) returns (Boolean) {}
189
+ rpc findSimilarImage(FindImageRequest) returns (FindImageResponse) {}
189
190
  }
190
191
 
191
192
  service Wifi {
@@ -554,3 +554,36 @@ message WatcherRegistRequest {
554
554
  Key key = 4;
555
555
  }
556
556
  }
557
+
558
+ enum FindImageMethod {
559
+ FIM_TEMPLATE = 0;
560
+ FIM_FEATURE = 1;
561
+ }
562
+
563
+ enum FindImageArea {
564
+ FIA_WHOLE_SCREEN = 0;
565
+ FIA_LEFT = 1;
566
+ FIA_TOP_LEFT = 2;
567
+ FIA_TOP = 3;
568
+ FIA_TOP_RIGHT = 4;
569
+ FIA_RIGHT = 5;
570
+ FIA_BOTTOM_RIGHT = 6;
571
+ FIA_BOTTOM = 7;
572
+ FIA_BOTTOM_LEFT = 8;
573
+ }
574
+
575
+ message FindImageRequest {
576
+ bytes partial = 1;
577
+ FindImageMethod method = 2;
578
+ oneof _area {
579
+ FindImageArea area = 3;
580
+ Bound bound = 4;
581
+ }
582
+ uint32 distance = 5;
583
+ float threshold = 6;
584
+ float scale = 7;
585
+ }
586
+
587
+ message FindImageResponse {
588
+ repeated Bound bounds = 1;
589
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamda
3
- Version: 7.55
3
+ Version: 7.60
4
4
  Summary: Android reverse engineering & automation framework
5
5
  Home-page: https://github.com/rev1si0n/lamda
6
6
  Author: rev1si0n
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes