June 16, 2026
How to Mirror Your iPhone Screen on Kali Linux Using UxPlay
Introduction
Kyrillos nady
3 min read
Introduction
During iOS application security assessments, having visibility into the target device is essential. Whether you're demonstrating a vulnerability, recording a PoC video, monitoring application behavior while using Frida or Objection, or preparing bug bounty reports, a reliable screen mirroring solution can significantly improve your workflow.
Unlike Android, which offers excellent tools such as scrcpy, there is no native equivalent for iOS on Linux. After experimenting with multiple approaches, I found that UxPlay provides one of the simplest and most reliable methods for mirroring an iPhone screen directly to a Kali Linux machine.
In this guide, I will walk through the complete setup process and show how to mirror an iPhone screen wirelessly using UxPlay.
What is UxPlay?
UxPlay is an open-source AirPlay receiver for Linux that allows iOS devices to stream their screen and audio to a Linux machine. It is lightweight, actively maintained, and integrates well into a mobile security testing environment.
For mobile application security testing, UxPlay provides a convenient way to:
- Monitor application behavior during assessments.
- Record PoC videos.
- Demonstrate vulnerabilities.
- Observe application flows while using Frida or Objection.
- Create screenshots and media for BB reports and blog posts.
Requirements
Before starting, ensure you have:
- Kali Linux or another Debian-based distribution
- Any modern iPhone that supports AirPlay. (Tested on an iPhone 8 running iOS 16)
- Jailbreak is not required, although this setup works perfectly in a jailbroken mobile testing environment.
- Both devices must be connected to the same Wi-Fi network.
Tip:_ For the smoothest experience, connect your Kali machine via Ethernet and keep the iPhone connected to a 5 GHz Wi-Fi network._
Step 1: Update Kali Linux
Update your package lists and installed packages:
sudo apt update && sudo apt upgrade -ysudo apt update && sudo apt upgrade -yStep 2: Install UxPlay
Install UxPlay directly from the Kali repositories:
sudo apt install uxplaysudo apt install uxplayRecent Debian-based distributions package UxPlay directly, making installation straightforward.
Step 3: Install Required Dependencies
UxPlay relies on GStreamer for video and audio decoding.
Install the required plugins:
sudo apt install \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-libav -y --fix-missingsudo apt install \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-libav -y --fix-missingThese packages provide support for:
- Video rendering
- Audio playback
- H.264 decoding
- Additional codec compatibility
Step 4: Install and Configure Avahi
AirPlay uses mDNS (Bonjour) to discover receivers on the network. On Linux, this functionality is provided by Avahi.
Install Avahi:
sudo apt install avahi-daemon -ysudo apt install avahi-daemon -yEnable the service:
sudo systemctl enable avahi-daemonsudo systemctl enable avahi-daemonStart the service:
sudo systemctl start avahi-daemonsudo systemctl start avahi-daemonVerify that it is running:
systemctl status avahi-daemonsystemctl status avahi-daemonExpected output:
active (running)active (running)If Avahi is not running, your iPhone will not be able to discover the Kali machine as an AirPlay receiver.
Step 5: Launch UxPlay
Start the AirPlay receiver:
uxplayuxplayExample output:
UxPlay 1.73.x
using system MAC address ...
Initialized server socket(s)UxPlay 1.73.x
using system MAC address ...
Initialized server socket(s)At this stage, Kali is advertising itself as an AirPlay receiver and is ready to accept incoming connections.
Step 6: Connect the iPhone
On the iPhone:
Control Center
↓
Screen Mirroring
↓
Select Your Kali MachineControl Center
↓
Screen Mirroring
↓
Select Your Kali MachineAfter a few seconds, the iPhone screen should appear in a new UxPlay window on your Linux desktop.
You now have a live view of the device directly from Kali Linux.
Verification
To verify that everything is working correctly:
- Open any application on the iPhone.
- Interact with the device normally.
- Observe the mirrored screen updating live on the Kali machine.
If the screen appears successfully, the setup is complete.
Common Issue: No DNS-SD Server Found
During setup, you may encounter the following error:
*** ERROR:
No DNS-SD Server found*** ERROR:
No DNS-SD Server foundThis usually indicates that Avahi is not running.
Verify:
systemctl status avahi-daemonsystemctl status avahi-daemonIf necessary:
sudo systemctl start avahi-daemon
sudo systemctl enable avahi-daemonsudo systemctl start avahi-daemon
sudo systemctl enable avahi-daemonThen restart UxPlay:
uxplayuxplayImproving Performance
Although AirPlay introduces some latency by design, there are a few ways to improve the experience.
1. Use a 5 GHz Network
Avoid congested 2.4 GHz networks whenever possible. For best results, connect your Kali machine via Ethernet cable while keeping the iPhone connected to a 5 GHz Wi-Fi network. This setup typically provides:
- Lower latency
- Higher throughput
- More stable video streaming
2. Disable Video Synchronization
You can reduce buffering by launching UxPlay with:
uxplay -vsync nouxplay -vsync no3. Increase Frame Rate
Depending on your hardware, you can improve smoothness by increasing the frame rate:
uxplay -fps 60uxplay -fps 60THANKS FOR READING ❤️
If you want to connect with me, feel free to reach out to me on LinkedIn