Awaken — Wake-on-LAN Controller

Android app to wake and shut down devices on the network — Magic Packet (WOL), remote shutdown via SSH, ICMP ping monitoring, push notifications and a home screen widget.

  • Android
  • Kotlin
  • Firebase
  • SSH

Problem

Controlling devices on a home or office network from a phone typically requires separate tools: one for WOL, another for SSH, another for monitoring. The goal was a single native app that covered the entire flow — wake, monitor, shut down — with the quality experience of a production app.

Solution

Native Android app in Kotlin that unifies Magic Packet (WOL), remote shutdown via SSH (password or private key), real-time ICMP ping and push notifications for status changes. It integrates with the Android system through Quick Settings Tiles, widgets, launcher shortcuts and Device Controls.

Key Features

  • WOL over LAN and WAN — Magic Packet with support for directed broadcast and relay
  • SSH Shutdown — password or SSH key authentication; no third-party dependencies for the protocol
  • Background monitoring — persistent service with ICMP ping; notifies online/offline even when the app is closed
  • Quick Settings Tiles — up to 3 configurable tiles in the system notification panel
  • Home Screen Widget — wake a device without opening the app
  • Biometrics/PIN — protects destructive actions (shutdown) with device authentication
  • Trusted Wi-Fi networks — skips authentication on known SSIDs
  • Export/import configuration — device backup in JSON

Technical Decisions

Firebase Remote Config controls the background monitoring toggle, allowing it to be disabled in production if it causes excessive battery drain without publishing an update. The Google Assistant integration via deep links wakeonlan://action was deliberate: it allows waking devices with voice commands.

Architecture

Aw
Awaken · Wake-on-LAN Controller
Android · Kotlin · Firebase · SSH
▶ Pruébalo — arrastra nodos · click para inspeccionar
Remote Configpush FCMWoL / SSH / PingintegraciónAndroid AppKotlin · Material 3 · :AwakenWoLSSHPingWidgetFirebaseFCM · Remote ConfigRed Local (LAN)UDP :9 · TCP :22 · ICMPPC Principaltarget configuradoOtros Equiposmúltiples targetsAndroid SystemTiles · Widget · BiometricsWorkManagerJobScheduler
cada barra = Magic Packet → NIC → power on → ping online
Architecture diagram of Awaken — Wake-on-LAN Controller
Architecture diagram of Awaken — Wake-on-LAN Controller