iOS远程控制Android

2022-03-24 10:13:08 Blog 161

作为一名iPhone用户,有一台Android备用机是很常见的事情,但是我们往往不想随身携带两台手机,总梦想着能远程控制Android手机。远程控制Android系统有着许多方案,teamviewer、向日葵等等,但是大多有个缺点,就是需要被控的手机先确认被控制请求才能执行远程控制,这显然不能满足我们的需求。在测试了各种远程控制方案后,终于找到了Scrcpy-IOS。

软件准备

iOS端

Scrcpy-IOShttps://github.com/wsvn53/scrcpy-ios
我们的主角,它是开源项目Scrcpy的iOS实现版本,关于Scrcpy可以查看https://github.com/Genymobile/scrcpy

AltStorehttps://altstore.io/
一款非常好用的IPA自签名工具,由于Scrcpy-IOS无法上架App Store,所以只能通过自签名的方式进行安装

Android端

Termuxhttps://github.com/termux/termux-app
Android上的一款Linux模拟环境软件,用于搭建SSH Server和运行ADB,可用其他设备Linux系统代替

其他

OpenSSHhttps://www.openssh.com/
ADBhttps://developer.android.com/studio/command-line/adb

基本原理

安装AltStore

先到AltStore官网(https://altstore.io/)下载macOS或Windows的客户端,并在电脑上安装。

注意

在macOS上需要安装mail plug-in,并开启该插件;并且,在将AltStore安装到iPhone时需要保持mail.app运行。

在Windows上需要安装最新版的iTunes。

然后将iPhone通过数据线连接到电脑上,并执行安装操作。

安装Scrcpy-IOS

这里介绍的是通过重新签名方式安装Scrcpy-IOS,有条件自行编译的也可以根据作者文档进行构建。

下载地址:https://github.com/wsvn53/scrcpy-ios/releases

  • 下载Scrcpy-IOS的最新版本IPA文件,并拷贝至任何用iOS上文件APP能打开的位置,例如iCloud文档等;
  • 在iPhone上打开AltStore,保持iPhone与安装了AltStore的电脑处于同一个局域网中;
  • 然后在settings中登录你的AppleID账号,然后在My Apps中点击左上角加号,在文件中选取Scrcpy.ipa,进行重签名与安装。
IMG_542

由于我的AppleID不是开发者,所以重签名的IPA只有7天有效期,当iPhone与安装了AltStore的电脑处于同一个局域网中是,AltStore可以自动重新签名

至此,已经完成了iOS控制端的软件安装,但是,这还无法做到直接控制Android手机,接下来开始准备被控制端。

构建SSH Server与安装ADB

Scrcpy-IOS需要一台SSH Server作为桥梁,并通过该服务器的ADB来连接Android,从而实现iOS到Android的数据传递。

此处介绍的是在Android上安装Termux,并在Termux上安装sshd和adb,来实现中转。这样的好处在于不用再另外找一台电脑来当这个桥梁。

当然也可以利用其它的Linux服务器来作为中转,推荐ubuntu或debian,因为它们可以更容易的安装ADB工具。

pkg install openssh android-tools
  • 创建或更改SSH登录密码
passwd
  • 启动sshd
sshd
  • 设置sshd自动启动,否则每次重启Termux都需要手动输入sshd
echo "sshd" >> ~/.bashrc
  • 在Termux中启动adb
adb start-server
  • 设置adb自动启动
echo "adb start-server" >> ~/.bashrc
  • 开启手机的开发者模式,并在开发者选项中开启USB调试;在我的Android手机中,开启USB模式后,就可以在Termux中进行ADB连接了
  • 通过adb devices命令检查设备连接状态
  • 若无法通过USB连接,我们也可以通过WiFi无线调试模式连接手机
# 先将手机通过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中显示黑屏,例如密码解锁页面,我的做法是去除密码解锁。

发布评论