Feature: Implement initial macOS SimpleRemoter client
This commit is contained in:
61
macos/README.txt
Normal file
61
macos/README.txt
Normal file
@@ -0,0 +1,61 @@
|
||||
macOS Remote Desktop Client
|
||||
===========================
|
||||
|
||||
Prerequisites:
|
||||
1. Xcode Command Line Tools: xcode-select --install
|
||||
2. CMake: brew install cmake
|
||||
|
||||
Build:
|
||||
chmod +x build.sh
|
||||
./build.sh
|
||||
|
||||
Or manually:
|
||||
mkdir build && cd build
|
||||
cmake ..
|
||||
make
|
||||
|
||||
Run:
|
||||
./build/bin/ghost
|
||||
|
||||
Configuration:
|
||||
Server address is configured in main.mm (g_SETTINGS variable).
|
||||
Modify before building if needed.
|
||||
|
||||
Permissions Required:
|
||||
1. Screen Recording - System Settings > Privacy & Security > Screen Recording
|
||||
2. Accessibility - System Settings > Privacy & Security > Accessibility
|
||||
|
||||
Features:
|
||||
[x] Screen capture (CGDisplayCreateImage)
|
||||
[x] H264 video encoding (VideoToolbox)
|
||||
[x] Mouse control (move, click, drag, scroll)
|
||||
[x] Keyboard control (full VK code mapping)
|
||||
[x] Retina display support (coordinate scaling)
|
||||
[x] Network connection (IOCPClient)
|
||||
[x] LOGIN_INFOR (system info reporting)
|
||||
[x] Heartbeat with RTT estimation
|
||||
[x] Active window tracking
|
||||
[x] Quality level adjustment (FPS/algorithm)
|
||||
|
||||
Files:
|
||||
CMakeLists.txt - Build configuration
|
||||
Permissions.h/mm - macOS permission handling
|
||||
ScreenHandler.h/mm - Screen capture and H264 encoding
|
||||
InputHandler.h/mm - Mouse/keyboard simulation
|
||||
H264Encoder.h/mm - VideoToolbox H264 encoder
|
||||
SystemManager.h/mm - Process management
|
||||
main.mm - Entry point, LOGIN_INFOR, heartbeat
|
||||
|
||||
Quality Levels:
|
||||
Level 0: 5 FPS, Grayscale (emergency low bandwidth)
|
||||
Level 1: 10 FPS, RGB565
|
||||
Level 2: 15 FPS, H264 (default, office work)
|
||||
Level 3: 20 FPS, H264
|
||||
Level 4: 25 FPS, H264
|
||||
Level 5: 30 FPS, H264 (smooth)
|
||||
|
||||
Notes:
|
||||
- First frame is always raw bitmap (TOKEN_FIRSTSCREEN)
|
||||
- Subsequent frames use H264 encoding (TOKEN_NEXTSCREEN)
|
||||
- Coordinates are scaled for Retina displays automatically
|
||||
- Windows VK codes are mapped to macOS key codes
|
||||
Reference in New Issue
Block a user