1
0
Fork 0
No description
Find a file
Brendan Szymanski 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
audio Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
bluetooth Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
hdmi Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
health Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
keylayout Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
light Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
media Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
overlay Override config_maxUiWidth in values-tvdpi bucket to fix display sizing 2026-07-13 22:49:55 -04:00
ramdisk Add temporary serial logcat and persistent logging for bring-up 2026-07-12 14:30:24 -04:00
seccomp_policy Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
sepolicy Add wireless reprobe service for post-mount firmware loading 2026-07-13 04:16:02 -04:00
suspend_blocker Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
usb Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
wifi Revert force-rebind of bound USB WiFi drivers in reprobe 2026-07-13 15:12:13 -04:00
Android.bp Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
AndroidProducts.mk Rename to tart codename 2026-07-11 17:27:17 -04:00
aosp_tart.mk Update device/kernel paths for tart codename rename 2026-07-11 18:43:11 -04:00
BoardConfig.mk Enable interactive serial shell on ttyS2 console 2026-07-13 19:58:32 -04:00
bootanimation.zip Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
compatibility_matrix.xml Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
device.mk Add wireless reprobe service for post-mount firmware loading 2026-07-13 04:16:02 -04:00
framework_compatibility_matrix.xml Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
lineage_tart.mk Update device/kernel paths for tart codename rename 2026-07-11 18:43:11 -04:00
manifest.xml Remove deprecated HIDL camera provider from VINTF manifest 2026-07-12 14:30:07 -04:00
mkbootimg.mk Update device/kernel paths for tart codename rename 2026-07-11 18:43:11 -04:00
mkimg.sh Add androidboot.console to extlinux append for serial shell 2026-07-13 21:50:40 -04:00
product_manifest.xml Add device tree for Orange Pi 5 Ultra LineageOS ATV 2026-07-10 17:56:31 -04:00
README.md Rewrite README to reflect tart LineageOS ATV port 2026-07-12 00:05:59 -04:00
vendor.prop Add temporary serial logcat and persistent logging for bring-up 2026-07-12 14:30:24 -04:00
wrimg.sh Match wrimg.sh vendor partition size check to the new 512M size 2026-07-13 13:23:23 -04:00

android_device_rockchip_tart

Device tree for building LineageOS 23.2 (Android 16, Android TV variant) for the Orange Pi 5 Ultra, codename tart.

Hardware

  • SoC: Rockchip RK3588 (4x Cortex-A76 @ 2.4GHz + 4x Cortex-A55 @ 1.8GHz)
  • GPU: ARM Mali-G610 MP4 "Odin" (Valhall, OpenGL ES 3.2 / Vulkan 1.2 / OpenCL 2.2)
  • Ethernet: 2.5GbE via Realtek RTL8125BG (PCIe)
  • WiFi/BT: WiFi 6E + Bluetooth 5.3 via Ampak AP6611S module (Synaptics SYN43711 chipset)
  • Audio: Everest ES8388 codec (3.5mm jack, mic, HDMI eARC)
  • Display: HDMI 2.1 out (8K60), 4-lane MIPI DSI out, HDMI 2.0 capture in

Status

This is an active bring-up port, not a finished build. Working/not-working status changes frequently — the authoritative, currently-maintained list lives in AGENTS.md and CLAUDE.md at the root of the parent project repo, not here. As of the last update to this README:

Working:

  • Boots to Android on real hardware (kernel, all 8 CPUs, GPU/USB/PCIe detected)
  • breakfast tart + plain mka build system/vendor/boot/ramdisk images
  • GPT image creation (mkimg.sh) and flashing via U-Boot/extlinux

Not working / deferred:

  • GPU acceleration — stock AOSP mesa3d only, no Panfrost yet
  • SELinux enforcing (currently permissive)
  • Camera, HDMI capture input, RTL8125BG Ethernet firmware, and WiFi/BT driver support are all unverified/in progress

This device has no Android recovery (TARGET_NO_RECOVERY := true) — it boots via U-Boot + extlinux.conf, not a recovery/OTA-zip flow. Use plain mka, not mka bacon (see BoardConfig.mk and the parent project's build docs for why bacon fails on this device).

Building and flashing

Full setup, sync, and build instructions live in the android_local_manifest README — this repo is just one of several projects (device tree, kernel, vendor blobs) that manifest pulls in.

Two scripts in this repo are used post-build:

  • mkimg.sh — assembles a flashable GPT image (U-Boot + FAT32 boot partition with extlinux.conf/kernel/DTB/ramdisk, plus system/vendor/metadata/userdata partitions) from the build output. Run from the source tree root after mka, in the same shell used to build (needs TARGET_PRODUCT/ANDROID_PRODUCT_OUT from lunch/breakfast). Do not run with sudo — it escalates internally per-command only where needed.
  • wrimg.sh — writes individual partition images (boot/system/vendor) directly to an already-flashed physical device for fast dev-iteration re-flashes, without rebuilding the whole GPT image. Also supports wipe (reformat userdata) and wipe-metadata. Auto-detects the target block device by matching partition labels/sizes against mkimg.sh's 5-partition layout.

License

Apache-2.0. Originally forked from KonstaKang's Orange Pi 5 Pro AOSP device tree and dvab-sarma's port; substantially modified for the Orange Pi 5 Ultra / LineageOS ATV port.