sonic云真机通过linux系统接入苹果手机

这篇具有很好参考价值的文章主要介绍了sonic云真机通过linux系统接入苹果手机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

前期基于sonic部署搭建了在线云真机系统,基于成本考虑,想通过linux系统承载ios手机,也就是ios手机需要挂载在linux上,并通信,那需要用到usbmuxd,这是USB协议上实现多路TCP连接,将USB通信抽象为TCP通信媒介。

实操

系统:ubuntu20.04LTS、iPhone11
思路:确保宿主机中usbmuxd运行,并通过容器映射后获取信息,然后通过苹果电脑安装在iPhone上的wda操作(iPhone装完wda后就可以脱机了)

1、安装所需环境:确保宿主机安装好usbmuxd,并确认usbmuxd运行
先安装

apt install usbmuxd

如果安装后ps -ef | grep usbmuxd无法获取到运行情况,可以usbmuxd运行或直接重启sudo reboot,一般重启后就能发现服务已启动,见下

####@####-CR160:~/sonic-agent$ ps -ef | grep usbmuxd
usbmux      4444       1  0 10:38 ?        00:00:00 /usr/sbin/usbmuxd --user usbmux --systemd
iottest    15086    1896  0 10:52 pts/0    00:00:00 grep --color=auto usbmuxd

2、接入苹果手机:通过数据线接入苹果手机(linux–usb集线器–数据线–苹果手机),
过程可能手机会弹出是否信任窗口,点击信任即可
sonic云真机通过linux系统接入苹果手机
sonic云真机通过linux系统接入苹果手机

3、确认是否接入成功:以上操作后,可以发现拔插苹果手机,linux系统已经有显示挂载后的图标,见下则挂载进去了
sonic云真机通过linux系统接入苹果手机

sonic系统接入真机

思路:确保agent节点ios配置开启,WDA_BUNDLE_ID对应手机wda
系统相关:
sonic:1.5.0-release,docker部署

JAVA_HOME: /root/jdk-15.0.2+7
java version: 15.0.2
ANDROID_HOME: /root
ADB path: /root/platform-tools/adb
ADB version: Android Debug Bridge version 1.0.41
Version 33.0.3-8952118
Installed as /root/platform-tools/adb
chromeDriver path: /usr/bin/chromedriver
chromeDriver version: ChromeDriver 105.0.5195.52 (412c95e518836d8a7d97250d62b29c2ae6a26a85-refs/branch-heads/5195@{#853})
Node path: /usr/bin/node
Node version: v12.22.12
npm path: /usr/bin/npm
npm version: 6.14.16
adbkit path: /usr/bin/adbkit
adbkit version: 2.11.1
Appium path: /usr/bin/appium
Appium version: 1.22.0
System: linux

启动节点后观察节点上手机情况:

sudo docker logs -f sonic-agent_sonic-agent_1

检测agent日志中ios启动情况:

2022-09-18 02:41:32.522 - INFO 1 --- [main] o.cloud.sonic.agent.bridge.ios.SibTool   : iOS devices listening...
2022-09-18 02:41:32.522 - INFO 1 --- [main] o.cloud.sonic.agent.bridge.ios.SibTool   : Enable iOS Module
2022-09-18 02:41:32.787 - INFO 1 --- [pool-3-thread-1] o.cloud.sonic.agent.bridge.ios.SibTool   : iOS Devices: 00008030-####### ONLINE!
巴拉巴拉......

sonic云真机通过linux系统接入苹果手机
sonic云真机通过linux系统接入苹果手机
此时进入容器,可以发现

root@####-CR160:~# cd plugins/
root@####-CR160:~/plugins# ls
sonic-android-apk.apk  sonic-android-scrcpy.jar  sonic-go-mitmproxy  sonic-go-mitmproxy-ca-cert.cer  sonic-go-mitmproxy-ca-cert.pem  sonic-go-mitmproxy-ca.pem  sonic-ios-bridge  yadb
root@iottest-CR160:~/plugins# ./sonic-ios-bridge devices
00008030-#### online

如果usbmuxd配置有问题,则会显示

Error:failed connecting to [usbMux], you can use 巴拉巴巴等......

可以在确保宿主机运行usbmuxd情况下,重启agent即可,如果重启存在问题,可以参考以下解决:

可能会冲突的问题:
1、如果一直运行着的容器中是已经映射了usbmuxd,会引发以下挂载冲突的映射问题

####@####-CR160:~/sonic-agent$ sudo docker-compose restart
Restarting sonic-agent_sonic-agent_1 ... error

ERROR: for sonic-agent_sonic-agent_1  Cannot restart container c479ad7995c0dea6189daa249322e4929be89a82cefd46caf787e97c37f9187f: failed to create shim: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/var/run/usbmuxd" to rootfs at "/var/run/usbmuxd": mount /var/run/usbmuxd:/var/run/usbmuxd (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

可以先vim docker-compose.yml,先把usbmuxd映射相关的注释后,启动sonic-agent_sonic-agent_1,确认容器启动正常后,查看日志无误,再次加上usbmuxd映射后启动

sudo docker-compose up -d

2、苹果连接上了,但是投屏只转圈,然后日志显示WDA_BUNDLE_ID not in your devices,这个标识wda的标识配置有误,核对后修改agent中的WDA_BUNDLE_ID后重启即可

3、有个奇怪的现象,就是usbmuxd这个当一台苹果手机都没连接时,容器中默认无法读取到拔插后的苹果设备。
当确保ps -ef | grep usbmuxd进程存在时,可以发现,只有一台苹果接入时,拔插后,设备变成不在线,必须要至少保证拔插后存在一台设备是连接中的状态(即至少2台苹果接入)才能使得拔插后,usbmuxd不会挂掉!!!

4、如果其他都操作都正常,还是获取不到设备信息,则kill -9 进程号再reboot一下看看效果。文章来源地址https://www.toymoban.com/news/detail-493466.html

到了这里,关于sonic云真机通过linux系统接入苹果手机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 苹果手机丢了如何通过定位找回?iPhone手机丢失定位找回方法

    苹果手机如果不小心弄丢了,可以通过自带的【查找我的iPhone】功能对手机进行定位。 如果已经升级到iOS 15及更新系统的设备,即使在关机状态下,也可以进行定位追踪。 接下来小编将教大家如何定位找回丢失的iPhone手机! 首先,我们来看一下苹果手机如何开启定位追踪功

    2024年02月12日
    浏览(50)
  • 通过无线路由器实现手机上网包含安卓、苹果的图文配置

    一、线路的连接。我们常见的几种拨号网络连接情况如下: ①:有“ADSL猫”的宽带网络。比如直接从电信、联通等运营商所接电话线入户网络,配有“猫”。如下图: ②:有“光猫”的光缆入户光纤网络。用如下图: ③:无“光猫”的网线入户光纤网络。如下图: ④:“

    2024年02月06日
    浏览(91)
  • java通过http头部信息如何判断是ipad、安卓手机还是苹果手机 或者是其它设备...

    在Java中使用HttpServletRequest对象的getHeader(\\\"User-Agent\\\")方法可以获取到客户端发送过来的User-Agent信息。根据这个信息,可以判断客户端是哪种设备。 对于iPad,User-Agent信息通常包含\\\"iPad\\\"字样;对于安卓手机,包含\\\"Android\\\"字样;对于苹果手机,包含\\\"iPhone\\\"字样。 代码示例: 注意:不

    2024年02月13日
    浏览(63)
  • (flutter)黑苹果系统 Xcode iOS flutter 跑通真机模拟器 此oc clover 彼oc swift

    前段时间写了关于flutter的一系列基础知识和入门的一些坑,中间把ios端的项目编译部署等工作一带而过,这里我觉得还是有必要专门写一篇文章来讲讲这个,顺便把环境问题也一起说了。 我们都知道开发ios应用需要用到苹果电脑,即使flutter也不例外,flutter编译构建需要Xc

    2024年02月07日
    浏览(57)
  • 微信小程序 - 完美去除 <scroll-view> 滚动条,保证 100% 去掉隐藏苹果 ios 系统、安卓滚动条(解决 ios 苹果真机scroll-view无法隐藏滚动条)详细示例代码,保证可用

    关于微信小程序去掉 scroll-view 滚动条的教程中,全都是只能去掉安卓系统手机滚动条,而苹果手机则无法去掉。 本文 实现了在微信小程序中,强力去除 scroll-view 组件滚动条,保证去除苹果ios系统和安卓手机的滚动条, 您可以自由的将本文的去除代码应用到 “局部 / 全局”

    2024年02月11日
    浏览(62)
  • 苹果手机无法更新系统问题

    有些苹果手机,打开设置-通用-软件更新显示iOS已是最新版本。然而其它人的手机已经有更新的版本可以更新。 造成这个问题的原因有两个: 第一个是:苹果不支持该设备更新了。如iPhone SE及更老的手机不支持升级到iOS10。具体查看苹果每次系统大版本更新时,苹果官网公布

    2024年02月13日
    浏览(34)
  • 苹果iPhone手机iOS17系统怎么下载安装更新iPhone苹果ios17系统?

    苹果iPhone手机iOS17系统怎么下载安装更新iPhone苹果ios17系统? 1、在苹果iPhone手机上,找到并打开【设置】; 2、打开设置后,找到并点击进入【通用】; 3、在通用内找【软件更新】并点击进入; 4、在软件更新内找到并点击【Beta版更新】,选择【iOS17】;  5、选择iOS17后,点击

    2024年02月12日
    浏览(54)
  • 【教程】如何在苹果手机上查看系统文件?

    ​ 目录 引言 用户登录工具和连接设备 查看设备信息,电池信息 查看硬盘信息 硬件信息 查看 基带信息 销售信息 电脑可对手机应用程序批量操作 运行APP和查看APP日志 IPA包安装测试 注意事项 苹果手机与安卓手机不同,无法直接访问系统文件夹。但是,如果我们想要查看苹

    2024年01月24日
    浏览(37)
  • buildroot系统调试苹果手机网络共享功能

    苹果手机usb共享网络调试 首先了解usb基础知识,比如usb分为主设备和从设备进行通信, 1.HOST模式下是只能做主设备, 2.OTG模式下是可以即做主又可以做从,主设备即HCD,从设备即UDC(USB_GADGET )。而我们这里调试的usb网络共享属于做从设备, 3.OTG控制器集成在CPU内,当有OTG线

    2024年02月09日
    浏览(39)
  • iPhone苹果下载skype for business和skype有什么区别?苹果iPhone手机iOS系统如何下载Skype到iPhone苹果手机?

    skype for business和skype有什么区别? 在国内iPhone苹果手机App Store上搜索:Skype,找不到真证的Skype,只能找到skype for business(以前称为Lync 2013); 而skype for business却不是一部分人要找到Skype。如何找到真证的Skype,那么需要大家按下面的教程操作; iPhone苹果手机如何下载Skype到苹

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包