1
0
Fork 0
Commit graph

6 commits

Author SHA1 Message Date
04e94e9938 Move AndroidTvOpiOverlay to product to disable UI width cap
The config_maxUiWidth=0 override never took effect from /vendor/overlay:
static RRO precedence is decided by partition order before priority, so
the product-partition TvFrameworkOverlay (1920) always won and silently
re-capped the UI to 1920x1080 on 4K displays. Moving our overlay to the
product partition lets its priority 10 beat TvFrameworkOverlay's 0, so
the cap is disabled and the UI renders at the display's native
resolution. Users can select a lower mode in Settings if needed.
2026-07-16 13:29:27 -04:00
9e8d38a0c8 Remove stale values-tvdpi overlay (redundant after xhdpi switch)
The display sizing fix now uses PRODUCT_AAPT_PREF_CONFIG=xhdpi, so the
device no longer resolves the tvdpi resource bucket. The values-tvdpi
override with config_maxUiWidth=0 is dead code. The values-xhdpi override
provides the same defense-in-depth in the currently-resolved bucket.

Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
2026-07-14 12:31:39 -04:00
6057c30431 Switch PRODUCT_AAPT_PREF_CONFIG to xhdpi to fix display sizing
The root cause of the oversized/clipped UI is TvFrameworkOverlay's
config_maxUiWidth=1280 in the values-tvdpi resource bucket. With
PRODUCT_AAPT_PREF_CONFIG=tvdpi, the device resolves this bucket and
the 1280px cap is enforced, limiting the logical display to 1280x720
(which SurfaceFlinger then upscales to 1920x1080).

The Raspberry Pi 5 ATV build (KonstaKANG) uses PRODUCT_AAPT_PREF_CONFIG=xhdpi
and has no display sizing issues, because values-xhdpi has
config_maxUiWidth=1920 (no effective cap on 1080p displays).

Also adds a values-xhdpi/config.xml overlay with config_maxUiWidth=0 as
defense-in-depth, matching the existing values-tvdpi override.

Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
2026-07-14 11:47:44 -04:00
10a332665b Override config_maxUiWidth in values-tvdpi bucket to fix display sizing
The Android TV framework overlay (TvFrameworkOverlay) sets
config_maxUiWidth=1280 in its values-tvdpi resource bucket. This device
resolves the tvdpi bucket via PRODUCT_AAPT_PREF_CONFIG=tvdpi, so the
logical display gets capped to 1280x720@320dpi even though the physical
panel runs at 1920x1080. SurfaceFlinger then upscales 720p->1080p, making
the UI oversized/clipped, and makes the Settings Resolution picker a no-op.

The previous fix (commit ada397e) put config_maxUiWidth=0 in the unqualified
values/ bucket, which loses to values-tvdpi because Android prioritizes
config-qualified resources over RRO priority.

This new override lives in values-tvdpi/ — same config-qualifier bucket as
TvFrameworkOverlay's entry — so RRO priority decides. Our overlay priority
10 beats TvFrameworkOverlay's priority 0, and config_maxUiWidth=0 disables
the cap, letting the native 1920x1080 panel render at full resolution.

Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
2026-07-13 22:49:55 -04:00
ada397e2c6 Disable UI width cap so display renders at native resolution 2026-07-13 19:58:32 -04:00
ae84f8e65e Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00