This is an Android VNC server using contemporary Android 5+ APIs. It therefore does not require root access. In reverence to the venerable droid-VNC-server is is called droidVNC-NG.
- Network export of device frame buffer with optional server-side scaling.
- Injection of remote pointer events.
- Handling of client-to-server text copy & paste. Note that server-to-client copy & paste does not work in a generic way due to Android security restrictions.
- Handling of special keys to trigger 'Recent Apps' overview, Home button and Back button.
- Android permission handling.
- Screen rotation handling.
- File transfer via the local network, assuming TightVNC viewer for Windows version 1.3.x is used.
- Password protection for secure-in-terms-of-VNC connection.
- Ability to specify the port used.
- Start of background service on device boot.
- Reverse VNC.
Contributions to the project are very welcome and encouraged! They can come in many forms. You can:
- Submit a feature request or bug report as an issue.
- Provide info for issues that require feedback.
- Add features or fix bugs via pull requests. Please note there's a list of issues where contributions are especially welcome. Also, please adhere to the contribution guidelines.
-
Requires at least Android 7.
-
Since Android 10, the permission to access the screen contents has to be given on each start and is not saved. You can, however, work around this by installing adb (or simply Android Studio) on a PC, connecting the device running droidVNC-NG to that PC and running
adb shell cmd appops set net.christianbeier.droidvnc_ng PROJECT_MEDIA allow
once. -
You can also use adb to manually give input permission prior to app start via
adb shell settings put secure enabled_accessibility_services net.christianbeier.droidvnc_ng/.InputService
. -
If you are getting a black screen in a connected VNC viewer despite having given all permissions, it might be that your device does not support Android's MediaProjection API correctly. To find out, you can try screen recording with another app, ScreenRecorder. If it fails as well, your device most likely does not support screen recording via MediaProjection. This is known to be the case for Android-x86.