Files
android-kiosk-browser/CHANGELOG.md
T
margaret 58f960ee2d
CI / build (push) Has been cancelled
CI / lint (push) Has been cancelled
docs: Update CHANGELOG for v1.1.0 features
2026-02-03 20:00:59 +00:00

3.0 KiB

Changelog

All notable changes to the Android Kiosk Browser project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0-MVP] - 2026-02-03

Added

  • Fullscreen WebView browser with immersive mode (hides status & navigation bars)
  • URL whitelist system with proper domain boundary matching
  • Configurable homepage URL via admin settings
  • Lock Task Mode support for full kiosk lockdown
  • Admin PIN protection (default: 1234) with 3-tap corner unlock
  • Auto-launch on boot via RECEIVE_BOOT_COMPLETED receiver
  • Idle timeout with automatic return to homepage and session clearing
  • Admin settings panel for runtime configuration
  • 29 unit tests covering whitelist, idle timer, and config validation

Security

  • Fixed whitelist bypass vulnerability (hobbs.farm.evil.com attack vector)
  • Proper domain boundary checking: host == domain || host.endsWith(".$domain")

Documentation

  • README.md with setup instructions
  • TESTING.md with comprehensive QA checklist
  • IMPROVEMENTS.md with code review findings

Technical Details

  • Language: Kotlin
  • Min SDK: 21 (Android 5.0+)
  • Target SDK: 34
  • Dependencies: AndroidX Core, AppCompat, WebKit, Preference

[1.1.0] - 2026-02-03

Added

  • PIN Hashing (SHA-256) 🔐 — PINs now stored as secure salted hashes instead of plain text
  • Remote Configuration 📡 — Fetch settings from a JSON URL (polls every 5 min)
  • Digital Signage Mode 🖼️ — Auto-rotate through multiple URLs at configurable intervals
  • Error Handling — Graceful network error pages with retry button
  • Loading Indicator — Progress bar during page loads
  • CI/CD Pipeline — Automated testing via Gitea Actions

Changed

  • Admin settings reorganized into sections: Basic, Remote Config, Signage, Security
  • Triple-tap admin unlock now uses programmatic click handler (more reliable)

Security

  • PINs stored as salt:hash format, auto-upgrades plain text PINs on save
  • PIN changes remain local-only (not exposed via remote config)

Technical Details

  • New Classes: PinSecurity.kt, SignageManager.kt, RemoteConfigManager.kt, ErrorHandler.kt, LoadingProgress.kt
  • Unit Tests: 50+ (added PIN, signage, and error handling tests)

Remote Config JSON Format

{
  "homepage": "https://example.com",
  "whitelist": "example.com,other.com",
  "idle_timeout": "300",
  "signage_urls": ["https://url1", "https://url2"],
  "signage_interval": "30"
}

Future Releases (Planned)

[1.2.0] - Fleet Management

  • Web dashboard for managing multiple kiosks
  • Device heartbeat/status reporting
  • OTA update distribution

[1.3.0] - Advanced Features

  • Multiple whitelist profiles
  • Scheduled content (different homepage by time)
  • Custom branding (splash screen/logo)
  • Usage analytics

Maintained by the hobbs.farm team: Pluto 🪐, Spirit 👻, Margaret 🌸