Files
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

89 lines
3.0 KiB
Markdown

# Changelog
All notable changes to the Android Kiosk Browser project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [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
```json
{
"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 🌸*