SkillAgentSearch skills...

MobileControl

基于Minicap和Minitouch实现仿Webkey远程控屏软件,需Root权限

Install / Use

/learn @shenbengit/MobileControl
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

MobileControl

Android端基于minicap和minitouch实现仿Webkey远程控屏软件,需Root权限。

此项目仅做功能展示,可能存在bug。

实现功能

  • 支持查看手机画面、远程控制
  • 支持上传文件到设备

项目引入框架

| 框架 |主要功能
|:-----------:|:-----------: |minicap|手机截屏
|minitouch|手机模拟触摸
|nanohttpd|搭建HTTP服务器 |Java-WebSocket|搭建WebSocket服务器

项目运行效果

浏览器输入http://ip:9099ip为设备ip地址,确保在同一网络。

<img src="https://github.com/shenbengit/MobileControl/blob/master/screenshots/%E6%88%AA%E5%9B%BE.png" alt="ip" width="250px">

|触摸方向旋转0°|触摸方向旋转90°| |:---:|:---:| |<img src="https://github.com/shenbengit/MobileControl/blob/master/screenshots/%E6%89%8B%E6%9C%BA%E6%8E%A7%E5%88%B60%C2%B0.gif" alt="触摸方向旋转0°" width="250px">|<img src="https://github.com/shenbengit/MobileControl/blob/master/screenshots/%E6%89%8B%E6%9C%BA%E6%8E%A7%E5%88%B690%C2%B0.gif" alt="其他操作" width="250px">|

|触摸方向旋转180°|触摸方向旋转270°| |:---:|:---:| |<img src="https://github.com/shenbengit/MobileControl/blob/master/screenshots/%E6%89%8B%E6%9C%BA%E6%8E%A7%E5%88%B6180%C2%B0.gif" alt="触摸方向旋转180°" width="250px">|<img src="https://github.com/shenbengit/MobileControl/blob/master/screenshots/%E6%89%8B%E6%9C%BA%E6%8E%A7%E5%88%B6270%C2%B0.gif" alt="触摸方向旋转270°" width="250px">|

查看控制台日志

<img src="https://github.com/shenbengit/MobileControl/blob/master/screenshots/%E6%89%8B%E6%9C%BA%E6%8E%A7%E5%88%B6%E6%8E%A7%E5%88%B6%E5%8F%B0%E6%88%AA%E5%9B%BE.png" alt="查看控制台日志" width="400px">

使用流程

minicap和minitouch

  • 编译

    • 若您不想编译,则可以在这里直接使用已经编译好的。
    • 手动编译,具体参考minicapminitouch项目说明。
  • 通信协议

    • adb shell 命令 获取屏幕分辨率
    adb wm size
    

    获取cpu的arm架构

    adb shell getprop ro.product.cpu.abi
    

    根据不同的arm架构拷贝对应的文件到文件/data/local/tmp/目录下,详见

    • minicap 测试minicap是否可用(-P 后面的参数: {真实宽度}x{真实高度}@{虚拟宽度}x{虚拟高度}/{方向}.)
    adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0 -t
    

    若最后输出OK,则表示支持可用。 启动minicap(-P 后面的参数: {真实宽度}x{真实高度}@{虚拟宽度}x{虚拟高度}/{方向}.)

    adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0
    
    • 数据协议
      首次接收到的信息(24字节)

    | 字节 |长度 |注释 |:----------------:|:-------------------------------:|:-----------------------------:| |0|1|版本号| |1|1|长度| |2-5|4|低位优先,进程pid| |6-9|4|低位优先,实际显示宽度(以像素为单位)| |10-13|4|低位优先,实际显示高度(以像素为单位)| |14-17|4|低位优先,虚拟显示宽度(以像素为单位)| |18-21|4|低位优先,虚拟显示高度(以像素为单位)| |22|1|方向| |23|1|怪异的位标志|

目前存在问题

  • minicap或minitouch有时候会失效,具体问题是用adb初始化时无数据返回,已经添加刷新功能用于兼容。
  • 无法上传大文件,Websocket会断,经过测试100M以内可以。
View on GitHub
GitHub Stars8
CategoryDevelopment
Updated11mo ago
Forks2

Languages

Kotlin

Security Score

62/100

Audited on Apr 18, 2025

No findings