3.0 KiB
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.comattack 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:hashformat, 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 🌸