几行代码让你的Android设备具有远程控制/调试功能

1,972 阅读3分钟

前言

先说明一下标题并不夸张,确实能做到但是得有几个前提条件

  • Android设备具打开了调试功能
  • Android设备具有网络调试功能,一般需要先用adb tcpip 设定端口
  • 会使用adb,scrcpy,frp(很简单) 这三种工具
  • 具有公网服务器(手机的adb tcpip端口会转发到这个服务器上)

adb 我相信是个Android 程序员都会用,scrcpy 是投屏工工具,用起来也就一条命令而已,frp是一种网络穿透工具,可以把你的设备暴露到公网,这样你就可以在公网adb connect 到你的设备了.

scrcpy:投屏工具

链接:github.com/Genymobile/…

frp:网络穿透工具

github地址:github.com/fatedier/fr…

中文使用手册:gofrp.org/docs/

使用步骤

1.先安装frp server端,具体操作十分简单,参考上文提到的frp 中文使用手册,需要注意的是这个需要安装到公网服务器(特别提醒,服务器用到的端口要打开)。

2.开启frp server端

可以参考我的frps.ini的配置,这是一个最简单的配置

  • bind_port :是frp server 的基础配置,frp client端都从这里接入
  • dashboard_port:是frp server dashboard 页面的端口,可以在浏览器中输入ip+dashboard_port 进入管理页面,和本文提到的功能没啥关系

服务器端的配置文件名为 frps.ini

[common]
bind_port = 9000

dashboard_port =9091
dashboard_user = userName
dashboard_pwd = passWord

3.在Android端 连接到frp server端,首先看客户端配置

客户端的使用方法有2种

1.作为单独的程序安装

推荐用这个 github.com/mainfunx/fr…

2.作为自己的项目的一部分

android版本frpc 编译非常复杂,辛亏有大佬编译好打成aar,省去了编译之库,把这个仓库集成到自己的项目中即可,基本只需要几行代码,下面的地址是我把某大佬的配置简化后,单独弄的仓库,配置更简单。

github.com/woshiwzy/My…

原版本地址:

github.com/zwb800/Andr…

客户端配置的文件名一般为 frpc.ini

[common]
server_addr = 这里填写你的公网服务器ip
server_port = 9000

[adb]
type = tcp
local_ip = 127.0.0.1
local_port = 5555
remote_port = 5555


[adbscreen]
type = tcp
local_ip = 127.0.0.1
local_port = 5005
remote_port = 5005


[common]配置

server_addr:就是你公网的ip

server_port:就是你server配置的端口接收的端口

[adb]配置

这个配置意义就是把你的Android设备本地端口接入到frp server的端口上,你的本地端口就是 adb tcpip 设置的端口号。这里的意思就是把你Android的5555端口接入到服务器的5555端口,这样你访问服务器的5555端口就相当于连接到你的设备了。这个端口可以随便设置,前提是没有被其他服务占用,配置好后,就可以通过adb connect连接 服务器ip和这个端口,连接到你的设备。

[adbscreen]

如果你用不到scrcpy,你可以不用配置,这个配置是把android 的 scrcpy的推流端口映射到服务器,让scrcpy 可以拿到手机屏幕推流,这样就可以实现可视化控制你的Android设备了。

frp 功能强大且高效,理论上只有还有端口可用无限配置内网转发,比如转发你内网的mysql,ssh,windows远程桌面等等.