当前位置:   article > 正文

python控制雷电模拟器_python雷电模拟器群控

python雷电模拟器群控

摘要:

       由于雷电模拟器的命令行工具非常适合第三方代码控制,所以越来越多的人开始使用雷电模拟器进行脚本、逆向等软件的开发。但是也有很多人不清楚用程序控制雷电模拟器的原理和方法。所以我以比较容易入门的Python代码为例,从原理到方法讲解一下雷电模拟器的控制过程。

雷电模拟器的控制原理

       安装好雷电模拟器之后,大家可以在安装目录下面找到ldconsole.exe和ld.exe两个命令行程序。此外,启动雷电模拟器之后,可以在共享文件夹→高级选项里面找到一个Windows路径。这个路径和模拟系统里面/sdcard/Pictures路径,两者是想通的。即在模拟器中复制文件到/sdcard/Pictures路径下,对应的Windows路径下面也会多出一个这样的路径。这个对于识图脚本来说,是非常的友好——因为在模拟器中截图无需经过dump步骤,就可以直接在控制主机上读到图并进行处理。此外两边甚至能够动态、高效的传递共享文件,这个功能就完爆其他模拟器。

       下面说说ld和ldconsole两个命令。Ld命令用来执行adb命令,但是和普通adb不同的是,你无需知道模拟器设备的序列号,而是直接可以通过序号来发命令。而且目标不存在能够很快反馈。这个可以加快脚本的效率,并且提高脚本的稳定性——因为不存在也不会崩溃。此外ld命令的连接非常稳定,不会受到物理USB线的影响,不会时断时续不稳定。这个对一些要长期跑的脚本来说,简直就是致命吸引。

       ldconsole也是一个很不错的工具,可以控制模拟器参数的设定,包括imei,序列号,手机号分辨率等等参数,还可以检测和控制模拟器的启动和关闭。甚至能够模拟输入,按键,滑动等操作。而且这种模拟操作是模拟器本身的开发接口,比adb要更稳定和灵敏,非常适合开发人员使用。

       综上,雷电模拟器的控制原理,其实是通过控制命令行接口来控制模拟器的行为。

雷电模拟器控制的示例

  1. class Dnconsole:
  2. # 请根据自己电脑配置
  3. console = 'D:\\Changzhi\\dnplayer2\\ldconsole.exe '
  4. ld = 'D:\\Changzhi\\dnplayer2\\ld.exe '
  5. share_path = 'C:/Users/zerglurker/Documents/雷电模拟器/Pictures'
  6. @staticmethod
  7. def get_list():
  8. cmd = os.popen(Dnconsole.console + 'list2')
  9. text = cmd.read()
  10. cmd.close()
  11. info = text.split('\n')
  12. result = list()
  13. for line in info:
  14. if len(line) > 1:
  15. dnplayer = line.split(',')
  16. result.append(DnPlayer(dnplayer))
  17. return result
  18. @staticmethod
  19. def list_running() -> list:
  20. result = list()
  21. all = Dnconsole.get_list()
  22. for dn in all:
  23. if dn.is_running() is True:
  24. result.append(dn)
  25. return result
  26. @staticmethod
  27. def is_running(index: int) -> bool:
  28. all = Dnconsole.get_list()
  29. if index >= len(all):
  30. raise IndexError('%d is not exist&
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/643246
推荐阅读
相关标签
  

闽ICP备14008679号