Kiosk lockdown

Hardening a public kiosk

Network, enclosure, updates and the failure modes that turn a screen into a weekend call-out.

2 min readUniKiosk 0.0.1-rc2

The lockdown handles software. These are the other things that decide whether a public screen is still working in six months.

Network

The console is plain HTTP on the local network. That is a deliberate trade for zero configuration, and it means the network is your security boundary.

  • Put signage panels on their own VLAN or a guest network with client isolation.
  • Never expose port 8080 to the internet. There is no reason to, and no authentication design that would make it wise.
  • Change the console password from its default before deployment.
  • If the panels need no internet — and most do not — do not give them any.

Enclosure

Software cannot beat physical access. If the device is reachable:

  • Enclose it, or mount it where the ports are not.
  • Cover or remove the USB port. Turn USB debugging off regardless.
  • Use a power supply that is fixed, not a plug somebody will borrow for a phone.

Updates

An Android device that reboots into a system update at eleven in the morning is a blank screen in front of customers.

  • Set system updates to a window when nobody is looking, or turn automatic updates off and do them on a maintenance visit.
  • Test one reboot before you leave site. If the board does not come back on its own, something in the install is wrong and you want to know now.

Power

  • Mains, always. A tablet on battery will discharge and then live on a charger that gets unplugged.
  • If the site loses power regularly, confirm the device is set to power on when power returns. Many sticks are; some are not, and that is a BIOS-level setting on the hardware, not something an app can control.

Storage

  • Leave at least 2 GB free for Android on a 16 GB device.
  • Set the media cache ceiling to fit. A cache that fills the disk causes symptoms that look like everything else.

The failure modes worth rehearsing

SymptomUsual cause
Bars reappear after a swipeOverlay permission not granted
Board blank after a power cutApp not set to start on boot, or device not set to power on
Video stuttersH.265 or 4K on hardware that cannot decode it
Console unreachableDevice moved to a different VLAN, or DHCP gave it a new address
Board staleA remote feed is down — the widget is correctly holding its last value
Screen dims after minutesAndroid display timeout winning; pin it in the app's display settings

What to leave on site

A card taped inside the enclosure with: the device's name, the admin PIN holder's name (not the PIN), the console address, and the date it was installed. The person who gets called out in a year will not be you.

Ready to try it?

One APK, no account, nothing to cancel.