SkillAgentSearch skills...

Lipstick2vnc

VNC server grabbing frames from lipstick wayland composer

Install / Use

/learn @mer-qa/Lipstick2vnc
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

A vncserver for Sailfish devices

Don't install this package if you care about security. There is no protection in this VNC server.

Build in Sailfish OS SDK for an armv7hl device

  • you need libVNCServer in the SDK, follow the instructions in the libVNCServer README

  • Check out the code (if not done already)

git clone https://github.com/mer-qa/lipstick2vnc.git
  • Start the Sailfish OS SDK Qt-Creator and open the file lipstick2vnc.pro

  • In kit selection make sure you enable MerSDK-SailfishOS-armv7hl

  • In the build settings (on the left side, the Sailfish OS icon above the play button) configure MerSDK-SailfishOS-armv7hl -> Release -> Deploy By Building An RPM Package

  • In the Build menu choose Deploy All, the created RPM file can now be installed on the device

Run on device

Systemd ensures that the VNC server is launched when a client connects to port 5900. So it's logs go into the systemd journal. To spare resources the VNC server just runs while clients are connected.

There is no authendication! So connections are just accepted from usb network. So e.g. on Jolla phone you have to enable developer mode and when asked choose "Developer mode", default ip address is then 192.168.2.15 to connect to with the VNC client.

Debug on device

If you want to run the server in the forground, to follow any output, you need to stop the systemd socket listener, see below.

For all these commands you must be user, not root.

To verify the systemd socket listener is active:

systemctl --user status vnc.socket

To restart the systemd socket listener:

systemctl --user stop vnc.socket
systemctl --user start vnc.socket

To stop the systemd socket listener:

systemctl --user stop vnc.socket

To start the systemd socket listener:

systemctl --user start vnc.socket

Follow log entries in the systemd journal, just for the VNC server, run this as root:

journalctl -f -a /usr/bin/lipstick2vnc

Verify if the server is running (just running/active when a client is connected):

systemctl --user status vnc.service

Related Skills

View on GitHub
GitHub Stars9
CategoryDevelopment
Updated1y ago
Forks11

Languages

C++

Security Score

70/100

Audited on Oct 2, 2024

No findings