It's a secure control interface for a PC over named-data-networking (NDN), using a mobile device! It also has UDP support.
If you want more detail, check out the project report or slides.
- Mouse control: movement, left click, right click, tap-to-click
- Mouse movement sensitivity and precision settings
- Two-finger scrolling, with inversion and sensitivity settings
- Rudimentary keyboard support
- Common slideshow control buttons
- Custom typed messages (see ellipses button)
- UDP and NDN support
- Security:
- AES cipher block chaining with random IVs for each message
- Random salt applied to password
- Replay attack prevention via sequence number enforcement policy
- Any relatively modern Android phone (Android 4.1 and up)
Clients/Consumers (PC): basically anything that can run NFD and Python3
- Any Linux distribution that can run NFD and Python3 (tested on Ubuntu 16)
- OSX
- Windows (no NFD, so UDP support only)
- Install NFD on your Android phone and the PC on which you want to control the mouse.
- Download from Google Play, or compile and install the app using Android Studio.
- On your PC, install Python3 and pip3. If necessary install dependencies for PyAutoGUI. Then install the Python libraries: PyAutoGUI, PyCrypto, and PyNDN.
- Python3 and pip3 (to help install Python libraries):
sudo apt-get install python3 python3-pip
- Depending on your PC's operating system, PyAutoGUI has some dependencies:
- On OSX, install Quartz:
sudo pip3 install pyobjc-framework-Quartz
- On Linux, install Xlib and Tkinter:
sudo apt-get install python3-xlib python3-tk
- On OSX, install Quartz:
- PyAutoGUI, PyCrypto, and PyNDN:
sudo pip3 install pyautogui pycrypto pyndn
- Python3 and pip3 (to help install Python libraries):
- Attach your phone and PC to the same network or wireless access point. WiFi hotspot also works.
- Make sure NFD is started on both your phone (the server/producer) and your PC (the client/consumer). Use the NFD app to start it on Android. On PC, use
nfd-start
. - On your phone, start the server within ndnMouse (you can choose NDN or UDP protocol).
- On your PC, execute the matching-protocol Python script in the pc_client directory. Connect to the IP address that was specified on your phone's ndnMouse start screen. Password is optional, but provides encryption when used (otherwise cleartext).
- Control 🐭❗
You can also watch the demo video.
See here