Tideo Auto Brightness
com.tideo.autobrightness
Zapstore _@zapstore.dev A glass-box replacement for Android's adaptive brightness
Republished from GitHub / F-Droid by the Zapstore main account.
You taught Android your brightness preferences and it is still wrong. Tideo replaces the opaque on-device ML of stock adaptive brightness with deterministic, inspectable math: a tunable lux-to-brightness curve you can see and shape, smooth animated transitions, circadian (time-of-day) scaling, per-context overrides, and an optional privileged "super dimming" mode that takes the screen below the system minimum. To use it, first disable the system's stock Adaptive/Auto Brightness (Settings > Display), then launch Tideo, complete onboarding, and toggle the main service on from the Dashboard. Features: * Three-zone perceptual brightness curve with a live, editable graph. * Automatic curve fitting: adjust brightness by hand during normal use and, after a handful of points across varied lighting, the wizard suggests a fitted curve. * Reactivity control: per-range dead zones that kill sensor jitter without making the screen sluggish. * Smooth animated transitions with override detection: drag the system slider and Tideo steps aside, then resumes per your rules. * Circadian scaling synced to local sunrise/sunset, shifting the whole curve across the day. * Super dimming (privileged): drives Android's Reduce Bright Colors below the hardware floor, plus a PWM-flicker-aware software-dimming mode. * Context automation: load profiles automatically by foreground app, time window, location, charging state, Wi-Fi SSID, or day of week. * Profiles: five built-in presets plus save / overwrite / factory-restore and JSON import/export. * Live Debug scene: a glass-box readout of every runtime variable and decision. * Emergency recovery: flip the phone upside-down and shake to force brightness to max with an SOS vibration. * Surfaces: foreground-service notification with actions, a Quick Settings tile, a home-screen widget, and boot-start. Privilege tiers: The core pipeline is fully functional at the BASIC tier, which uses only the user-grantable WRITE_SETTINGS permission. The optional ELEVATED tier unlocks super dimming and requires a one-time WRITE_SECURE_SETTINGS grant that YOU perform via adb, Shizuku, or root. It is never granted automatically. About the permissions Tideo requests: * Background location and location: used only by the optional location-aware context rules and the once-a-day sunrise/sunset refresh for circadian scaling. * Usage access (PACKAGE_USAGE_STATS): used only by per-app context rules to read the foreground app; granted from a Settings screen, not a runtime dialog. * Accessibility service: optional and presentation-only. It draws the debug/context flash overlay system-wide. It does not read screen content and does not consume input events. With it off, Tideo falls back to a foreground toast. Privacy: Tideo is local-first with no analytics, ads, or accounts. It makes one outbound network request, and only as a last resort: if you opt in and enable circadian scaling and no on-device location is available, it falls back to a single HTTPS request to ipwho.is to estimate your city from your public IP. This fallback is off by default and can be turned off under Circadian > Date & location. Automatic lookup runs at most once per day, and the resolved coordinates are saved only on-device; the user-triggered Use current location action can make an additional request after on-device location fails. Everything else runs entirely on-device. Tideo is a ground-up Kotlin/Compose rebuild of the Advanced Auto Brightness Tasker project, ported with exact behavioural parity. It is not affiliated with Tasker.
First release: Aug 2, 2026, 11 total releases.
Most recent release: Oct 26, 2026.
Appears in 0 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Oct 26, 2026 1.15.2This is a bit embarassing, but my fix in 1.15.1 didn't actually fix the problem where Night Light briefly showed the old temperature before correcting. The reason for that is that the debug app behaves differently from the release app and I only found out after releasing... The OnePlus 13 ignores Night Light temperature via Write Secure Settings, once Tideo notices this happening it uses Shizuku (or Root) instead to write the temperature (related: #148). When a context rule fires that returns to a Circadian Night Light profile, two Shizuku jobs run in quick succession. The first one shut down its helper, and the second tries to restart it before it is complete, which causes a 4 second timeout. Night Light briefly uses 4082 K before correcting to 7308 K after about 5 seconds. The debug app never learned that my phone ignores Night Light temperature writes via Write Secure Settings and therefore only fired one Shizuku job upon triggering such a context rule, meaning the bug I was fixing never triggered on the debug app in the first place and my device pass meant nothing(!). Tideo now reuses the same helper instead of restarting it between jobs. This means that the helper stays running while Tideo runs, but this is a trade-off that's worth it and will mostly be beneficial once the PRIVILEGED_FAST_PATHS.md plan lands. <!-- fdroid-changelog:32 --> ## What's new
More…
Fixes: - with Shizuku, returning to a profile with Night Light on no longer shows the device's own temperature for several seconds first; Tideo keeps its Shizuku helper running instead of restarting it for every call ## What's Changed * fix: keep the Shizuku helper bound, no 4 s bind hang (1.15.2) by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/155 **Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.15.1...v1.15.2 - Oct 17, 2026 1.15.0Implemented a new bright light hand-off feature (see FR in #136 ). In the new Hand-off Behavior screen you can set the lux point (corresponding to 90% brightness on your curve or more) at which Tideo hands control back to Android's Adaptive Brightness. Whenever the ambient lux readings drop below your hysteresis threshold (default: 80%), Tideo takes back control. You could put the hysteresis at 100%, but that means flip-flop behavior around the threshold: not recommended! I've attempted to create a detection method for detecting when Android enables High Brightness Mode (HBM). This method requires at least DUMP permissions, but will work with Shizuku or Root too. It will work on OxygenOS (tested it there), probably on ColorOS and no clue for others. Using HBM detection, requires the calibration to run from the new Hand-off Behavior screen. That will in turn run dumpsys display and try to scale the OEM settings (e.g. 0 - 4095 on my OnePlus 13) to Tideo's 8 bit (0 - 255) over 13 brightness writes. After calibration, whenever Tideo reads a value from dumpsys display above the OEM settings, it can display it as 256, 257 etc. and that then also serves as a marker for HBM being enabled. When HBM is enabled and Adaptive Brightness is on, Tideo will poll dumpsys display every 2 seconds in order to show the brightness value. Net result: Tideo was capped to a lower maximum brightness before, but now, if you want it, Brightness can now go higher without requiring Root. Key limitation: your own OEM still dictates *when* HBM is activated and by how much. <!-- fdroid-changelog:30 --> ## What's new
More…
New: - Bright-light hand-off: above a lux you set per profile, Android's Adaptive Brightness takes over so the phone's sunlight boost works, and Tideo takes back below it. Set it in Menu → Hand-off Behavior - a message marks each switch; the notification, widget and tile say "Android" meanwhile - calibrate the display there to see Android's brightness, above 255 when High Brightness Mode boosts it ## What's Changed * test(app): stop DraftSettingsViewModelTest wedging the DataStore writer (DD-069) by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/147 * 1.15.0: bright-light hand-off to Android Adaptive Brightness, with HBM readout (#136) by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/149 **Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.14.1...v1.15.0 - Oct 14, 2026 1.14.1
- Oct 4, 2026 1.13.0Many thanks to [Tsuk1ko](https://github.com/Tsuk1ko) for translating Tideo into Simplified Chinese and adding a few fixes too :)! <!-- fdroid-changelog:27 --> ## What's new Added Simplified Chinese and an in-app language picker. Notifications, widgets, live diagnostics and profile settings now follow the app language. ## What's Changed * feat: add Simplified Chinese and in-app language switching by @Tsuk1ko in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/141
More…
## New Contributors * @Tsuk1ko made their first contribution in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/141 **Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.12.0...v1.13.0 - Sep 30, 2026 1.12.0<!-- fdroid-changelog:26 --> ## What's new The manual-override notification has a Discard button: if you moved the brightness slider by accident, tap it to forget that adjustment and resume, without touching your other curve points. While it is offered, Discard takes the place of Reset. Brightness curve values beyond the old limits, such as those from Curve Suggestion, are no longer reset when you save a profile or the app restarts. ## What's Changed * 1.12.0: discard a manual override from its notification (#134); persist curve inputs unclamped (#133) by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/135
More…
**Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.11.0...v1.12.0 - Sep 27, 2026 1.11.0<!-- fdroid-changelog:25 --> ## What's new Night Light temperature and circadian scaling work where the display ignores the setting (e.g. OxygenOS), with Shizuku or root. Fixes: - circadian Night Light anchoring to 2850 K, not your temperature - "device default" Night Light drifting warmer each off/on cycle - backup and restore, broken since 1.8.2 - brightness stalling after a drop, missing a first or last reading or a return to an old level, and slowing with proximity covered
More…
- the notification reverting to "Monitoring ambient light" ## What's Changed * Night Light via color_display on OxygenOS, circadian anchor fixes, backup fix, AMH 14.1.0 (1.11.0 / vc25) by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/131 **Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.10.0...v1.11.0 - Sep 7, 2026 1.10.0<!-- fdroid-changelog:24 --> ## What's new Fixes false "Manual Override Detected" pauses. The app now tracks what Android actually stored, tolerates one step of rounding drift, treats a change made while adaptive brightness is on as ambiguous rather than as your input, and no longer reads a brightness change made while the screen is off as one. Debug tools: Graph Metrics (Live Debug level 7) again times graph redraws, and a new Brightness Writes card shows requested vs stored values. ## What's Changed * Override attribution: transactional writes, a drift deadband and write diagnostics (1.10.0/vc24) by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/128
More…
**Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.9.2...v1.10.0 - Aug 25, 2026 1.9.2<!-- fdroid-changelog:23 --> ## What's new Fixes a false "paused because you changed the brightness" right after the screen turns on, when you had not touched the slider. Reading the Wi-Fi network name without Location works again on Android 12 and 12L. Stay awake while charging now says when Android is set to a different charger set than this app writes, and offers to replace it. An unrecognized color-correction mode is still left alone, and the screen now offers to replace it.
More…
Circadian: pin a location and leave the date live. ## What's Changed * docs: record v1.9.1 release and PR 118 review by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/120 * Release v1.9.2 maintenance fixes and AMH 9.1.0 by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/124 **Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.9.1...v1.9.2 - Aug 20, 2026 1.9.1<!-- fdroid-changelog:22 --> ## What's new Fixes from a full review of the 1.9.0 release. Stay awake while charging now writes every charger type Android itself uses, dock included — before, turning it on could silently drop dock charging. A colour-correction mode this app does not recognise is now left alone instead of being switched off by an unrelated change, and the screen says so. Applying display settings now writes only what differs on the device.
More…
## What's Changed * v1.9.1 (vc22): stay-awake dock bit, daltonizer representability, listener release, field-aware Apply by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/119 **Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.9.0...v1.9.1 - Aug 18, 2026 1.9.0A Samsung user reported a black screen that the emergency reset could not fix (but a hard reboot could thankfully!), caused by writing to Night Light. The solution is to check (night light) capabilities and then only show the supported keys. Untested, as I do not have a Samsung device. If you do and you see the night light toggle under privileged display please open an issue! 🙏 <!-- fdroid-changelog:21 --> ## What's new Reliability and safety release. Privileged Display now reads the device state and checks Android's Night Light and always-on display capabilities before writing. Disable HDR remains an Android 14+ experimental preference control; applying or clearing it may need a reboot, and display-mode changes may briefly blank the screen. Emergency Reset now vibrates its S.O.S. confirmation. At debug level 8, ignored control commands say why.
More…
## What's Changed * Upgrade AMH to v4.1.0: replace shipped scripts and apply 4.0/4.1 adopter notes by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/111 * v1.9.0 (vc21): Privileged Display capability gating and device read-back, panic confirmation, control diagnostics, comment tier and supply-chain pins by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/117 **Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.8.2...v1.9.0 - Aug 2, 2026 1.8.2<!-- fdroid-changelog:20 --> ## What's new Maintenance and safety release. Updated the Android build toolchain while preserving F-Droid reproducibility. Profile imports now reject oversized or unreadable files, and a system restart respects the service-off setting. Stopping restores Android's brightness mode and clears leftover Extra Dim state. Emergency Reset continues its recovery steps if one system setting fails, and Extra Dim activation no longer risks applying a stale level.
More…
## What's Changed * docs: Ko-fi funding surface + triage #7 assessment (DA-020→DA-022, DA-021) by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/93 * DA-024: Add F-Droid store icon PNG from adaptive-icon vectors by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/95 * 1.8.2/vc20: AGP 8.13.2, F-Droid compatibility CI, security hardening + adversarial round, issue #110 fixes by @faded-penguin021 in https://github.com/faded-penguin021/Tideo-Auto-Brightness/pull/96 **Full Changelog**: https://github.com/faded-penguin021/Tideo-Auto-Brightness/compare/v1.8.1...v1.8.2