作为一名iPhone用户,有一台Android备用机是很常见的事情,但是我们往往不想随身携带两台手机,总梦想着能远程控制Android手机。远程控制Android系统有着许多方案,teamviewer、向日葵等等,但是大多有个缺点,就是需要被控的手机先确认被控制请求才能执行远程控制,这显然不能满足我们的需求。在测试了各种远程控制方案后,终于找到了Scrcpy-IOS。
Scrcpy-IOS(https://github.com/wsvn53/scrcpy-ios)
我们的主角,它是开源项目Scrcpy的iOS实现版本,关于Scrcpy可以查看https://github.com/Genymobile/scrcpy
AltStore(https://altstore.io/)
一款非常好用的IPA自签名工具,由于Scrcpy-IOS
无法上架App Store,所以只能通过自签名的方式进行安装
Termux(https://github.com/termux/termux-app)
Android上的一款Linux模拟环境软件,用于搭建SSH Server和运行ADB,可用其他设备Linux系统代替
OpenSSH(https://www.openssh.com/)
ADB(https://developer.android.com/studio/command-line/adb)
先到AltStore官网(https://altstore.io/)下载macOS或Windows的客户端,并在电脑上安装。
注意
在macOS上需要安装mail plug-in,并开启该插件;并且,在将AltStore安装到iPhone时需要保持mail.app运行。
在Windows上需要安装最新版的iTunes。
然后将iPhone通过数据线连接到电脑上,并执行安装操作。
这里介绍的是通过重新签名方式安装Scrcpy-IOS,有条件自行编译的也可以根据作者文档进行构建。
下载地址:https://github.com/wsvn53/scrcpy-ios/releases
由于我的AppleID不是开发者,所以重签名的IPA只有7天有效期,当iPhone与安装了AltStore的电脑处于同一个局域网中是,AltStore可以自动重新签名
至此,已经完成了iOS控制端的软件安装,但是,这还无法做到直接控制Android手机,接下来开始准备被控制端。
Scrcpy-IOS需要一台SSH Server作为桥梁,并通过该服务器的ADB来连接Android,从而实现iOS到Android的数据传递。
此处介绍的是在Android上安装Termux,并在Termux上安装sshd和adb,来实现中转。这样的好处在于不用再另外找一台电脑来当这个桥梁。
当然也可以利用其它的Linux服务器来作为中转,推荐ubuntu或debian,因为它们可以更容易的安装ADB工具。
在Termux中安装sshd和adb
pkg install openssh android-tools
passwd
sshd
echo "sshd" >> ~/.bashrc
adb start-server
echo "adb start-server" >> ~/.bashrc
adb devices
命令检查设备连接状态# 先将手机通过USB连接至电脑,通过电脑端adb执行以下命令
adb tcpip 5555
# 再到跳板机上,通过[ip]:[port]连接手机
adb connect x.x.x.x:5555
打开iOS端的Scrcpy,并填入SSH Server、Port、User、Password,调整scrcpy的相关参数后,点击connect进行远程控制。
Termux的默认SSH端口号是8022
并且可以通过frp等内网穿透工具,将SSH Server的登录地址及端口映射出去,然后进行外网远程控制,注意若要进行内网穿透,请保证SSH密码强度。
通过Scrcpy控制Android,感觉比其他teamviewer、向日葵等方案要流畅很多,同时免root、无需被控端确认,只是无法传输声音,无法直接打电话。
另外,在Android 12,受保护的页面会在Scrcpy中显示黑屏,例如密码解锁页面,我的做法是去除密码解锁。