open_ecm.lua 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. --[[
  2. @module open_ecm
  3. @summary ecm 服务启动功能模块
  4. @version 1.0
  5. @date 2025.08.26
  6. @author 拓毅恒
  7. @usage
  8. 用法实例
  9. 启动 ECM 服务
  10. - 运行 ecm_task 任务,来执行开启 ECM 的操作。
  11. - ECM 需要在飞行模式下开启,所以首先进入飞行模式。
  12. - 进入飞行模式后,使用 mobile.config(mobile.CONF_USB_ETHERNET, 7) 来启用 ECM 功能。
  13. 注:由于Windows系统没有测试环境无法测试 ECM 功能,所以本demo没有完整测试。
  14. 本文件没有对外接口,直接在 main.lua 中 require "open_ecm" 即可加载运行。
  15. ]]
  16. -- 运行 ECM 模式任务
  17. local function ecm_task()
  18. -- 初始化重试计数器,用于记录进入飞行模式失败的重试次数
  19. local count = 0
  20. -- 尝试进入飞行模式,获取操作结果标志
  21. local fly_sign = mobile.flymode(0, true)
  22. -- 判断是否成功进入飞行模式
  23. if fly_sign then
  24. log.info("进入飞行模式成功,打开ECM模式")
  25. -- 调用 mobile.config 函数启用 ECM 功能
  26. -- 传入的第二个参数 7 ,实际为二进制的 0111
  27. -- 蜂窝网络模块的usb以太网卡控制,bit0开关,1开0关,bit1模式,1NAT0独立IP(在usb以太网卡开启前可以修改,开启过就不行),bit2协议1 ECM,0 RNDIS,飞行模式里设置。
  28. log.info("我看看 ECM 是否启动成功:", mobile.config(mobile.CONF_USB_ETHERNET, 7))
  29. log.info("退出飞行模式")
  30. mobile.flymode(0, false)
  31. else
  32. log.info("进入飞行模式失败")
  33. end
  34. end
  35. -- 初始化一个系统任务,执行 ecm_task 函数
  36. sys.taskInit(ecm_task)