1
0
Fork 0
android_device_rockchip_tart/overlay/AndroidTvOpiOverlay/res/values-xhdpi/config.xml
Brendan Szymanski 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

38 lines
2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<!-- Disable TvFrameworkOverlay's config_maxUiWidth cap so the UI renders at
the display's native resolution (e.g. true 4K UI on a 4K TV); the user
can drop to a lower mode in Settings -> Display & Sound -> Resolution if
performance demands it.
Why this exact shape is required (all verified on hardware 2026-07-16):
- PRODUCT_AAPT_PREF_CONFIG strips all other density buckets from every
overlay APK at build time, so both TvFrameworkOverlay and this overlay
ship only their values/ and values-xhdpi entries. Adding more buckets
here is pointless; this bucket (plus values/) is the whole contest.
- The runtime density (ro.sf.lcd_density=240) always resolves the xhdpi
bucket, so this entry is the one that wins or loses.
- Both overlays define the same bucket, so config specificity ties and
precedence decides — which is partition order FIRST, android:priority
second. This overlay must therefore be product_specific (see
Android.bp); from /vendor it always loses to the product-partition
TvFrameworkOverlay (1920) no matter the priority, which silently
re-caps the UI to 1920x1080 on 4K displays. -->
<integer name="config_maxUiWidth">0</integer>
</resources>