ios minicap - ShenYj/ShenYj.github.io GitHub Wiki

ios-minicap

iOS Minicap provides a socket interface for streaming realtime screen capture data out of iOS devices.

ios-minicap

Requirements

  • brew install libjpeg-turbo (>=1.5 is required)
  • Xcode (for the Frameworks)
  • cmake (使用homebrew安装)
  • OS X Yosemite (10.9) or higher
  • iOS 8 or higher
  • Lightning cable. See the list of devices.

安装

  1. 下载项目, 如果有特殊要求, 比如存放路径请指明路径

    git clone https://github.com/openstf/ios-minicap
  2. 编译项目

    cd .../ios-minicap
    
    ./build.sh
    
    ./run.sh

    运行结果:

    ++ system_profiler SPUSBDataType
    ++ sed -n -E -e '/(iPhone|iPad)/,/Serial/s/ *Serial Number: *(.+)/\1/p'
    2020-11-26 10:11:57.631 system_profiler[69681:1609223] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
    2020-11-26 10:11:57.632 system_profiler[69681:1609223] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
    2020-11-26 10:11:57.632 system_profiler[69681:1609223] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
    2020-11-26 10:11:57.632 system_profiler[69681:1609223] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
    2020-11-26 10:11:57.633 system_profiler[69681:1609223] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
    2020-11-26 10:11:57.633 system_profiler[69681:1609223] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
    2020-11-26 10:11:57.633 system_profiler[69681:1609223] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
    + UDID=b6016a4b183682760ab483d3589b0c7da92d51fe
    + PORT=12345
    + RESOLUTION=400x600
    + ./build/ios_minicap --udid b6016a4b183682760ab483d3589b0c7da92d51fe --port 12345 --resolution 400x600
    EnableDALDevices
    2020-11-26 10:11:58.503 ios_minicap[69682:1609233] Available devices:
    2020-11-26 10:11:58.503 ios_minicap[69682:1609233] b6016a4b183682760ab483d3589b0c7da92d51fe
    2020-11-26 10:11:58.503 ios_minicap[69682:1609233] 0x8020000005ac8514
    resolution: 400x600
    Allocating 731648 bytes for JPEG encoder
    == Banner ==
    version: 1
    size: 24
    pid: 69682
    real width: 400
    real height: 600
    desired width: 400
    desired height: 600
    orientation:
    quirks: 1
    banner: 1183210109010058200901005820001
    New client connection

    运行成功后不要关闭窗口

  3. 运行demo

    另开一个tab

    cd .../ios-minicapexample
    
    npm install
    
    node app.js

    运行成功后, 通过浏览器打开: http://localhost:9002即可看到实时画面


桌面获取技术: (非越狱环境)

  1. Airplay Mirror

    Airplay是苹果提供一种多媒体多屏互动技术,可以将音频、照片、视频以及屏幕从iOS设备或者Mac电脑上传输到同局域网的接收设备上。这里的airplay-mirror技术就是屏幕数据传输的技术,因为该技术属于苹果私有协议方案,数据传输进行了加密,目前只有少数商业产品逆向破解了协议栈。例如AirServer 、LonelyScreen 、Reflector,还有国内的各种盒子,天猫盒子,小米盒子等

  2. 基于AVFoundationCoreMediaIO类库

    自从苹果发布 OS X Yosemite(10.10.x)和 iOS 8 以来,在QuickTime-Player屏幕录像中选择连接mac电脑的iphone手机即可获取手机屏幕的画面. 这个方法实际上是使用AVFoundation和CoreMediaIO库函数实现的屏幕获取。

  3. idevicescreenshot

    idevicescreenshot属于开源工具集的libimobiledevice的子集,可以在pc上对usb连接的ios设备进行截图,并将图片保存在pc本地,这种方式使用最简单但是效率较低,实际测试200-300ms左右完成1次截图,也就是1s只能完成3-5帧的视频传输速度。

⚠️ **GitHub.com Fallback** ⚠️