⚠️ EXPERIMENTAL · UNSUPPORTED · USE AT YOUR OWN RISK
This is an unofficial, experimental CoreELEC 22 build. It is NOT an official
CoreELEC release and it is NOT a supported CE22 port. I am not a CoreELEC 22
port maintainer, and I will not be providing support, bug fixes, updates, or
ongoing maintenance for this build.
The only purpose of this build is to give Amlogic AM9 Pro-class users a more
complete Dolby Vision experience than stock CoreELEC 22, by carrying a set of
custom Kodi features I built for my own device. That is the entire scope.
READ THIS BEFORE YOU FLASH ANYTHING
- USE ENTIRELY AT YOUR OWN RISK. There is no warranty of any kind, express
or implied. It may fail to boot, misbehave, break Dolby Vision, or do nothing
useful on your hardware. - BACK UP YOUR CURRENT INSTALLATION FIRST. Take a full CoreELEC backup
(Settings → CoreELEC → Backup) and/or image your existing boot media before
you install anything from here. Assume you may have to restore it. - Prefer a SEPARATE SD card or USB stick you can boot from, instead of
overwriting a working internal (eMMC) install. - Do NOT report problems with this build to the CoreELEC team or forums.
This is not their build; it is not their responsibility. Do not ask them to
support it. - I am also not offering support. If it breaks, you keep both pieces.
By downloading or using any file in this release you accept all of the above.
Install
- Clean install (recommended): flash the
*.img.gzto an SD card or USB with
balenaEtcher (or the Amlogic USB Burning Tool for eMMC), then boot from it. - In-place update: copy the
*.tarto the/storage/.updatefolder on an
existing CoreELEC install and reboot. (Back up first — see above.) - Verify your download against the SHA256 sums below before flashing.
What's changed in this update
This update follows
v22.0-samurihl-20260925161620.
In TV‑led Dolby Vision, subtitles and menus no longer dim and wash out with each
scene. They now look the same as in player‑led. The update also includes two Blu‑ray
Java menu fixes and a safety fix for disc menu graphics.
⚠️ Still experimental and completely unsupported. See the disclaimer above.
Back up your current install before flashing.Dolby Vision still requires
dovi.ko(the CE22 5.15 build) installed on your
device. It is not bundled; install it yourself as on stock CoreELEC 22. You do
not need to modify it. This build corrects it automatically at boot.
🛠️ Fixed: TV‑led Dolby Vision subtitles and menus no longer dim with each scene (by matthane)
Thanks to matthane, who found and fixed this in the
Dolby Vision driver
(CoreELEC/common_drivers #41).
This build carries his fix unchanged. Thanks also to
CE-Repo for testing it and for the before/after photos
in CoreELEC/xbmc #100.
In TV‑led (display‑led) Dolby Vision, the TV does the tone mapping. The box told the
TV that subtitles and the on‑screen menus covered the display's full brightness range.
The TV then remapped them along with the picture, so PGS subtitles, the OSD and the
Kodi menus got dimmer and less saturated scene by scene. That happened even though
Kodi had already prepared them at the right brightness for your display.
The box now sends them as they are, like a standalone player does, and lets the TV
handle them. Subtitles keep their authored brightness and colour. The menus and OSD
follow your GUI peak luminance setting, the same as in player‑led.
Checked by eye on an LG G6 with a PGS test file and M3GAN 2.0.
This is the only behaviour in TV‑led. There is no setting to switch back to the
old scene‑following look.
One setting now shows in player‑led only. GUI brightness follows the display
peak (under the Dolby Vision settings) now only appears in player‑led. In TV‑led
the TV maps the menus itself, so that setting never applied there.
Player‑led Dolby Vision and VS10 HDR10 output are unchanged.
🛠️ Fixed: Blu‑ray Java menus on UHD discs
Two bugs in libbluray, the library that runs Blu‑ray Java (BD‑J) menus. Both are
still present in libbluray 1.5.1 and its current development code. Thanks to
pannal, whose review of a M3GAN 2.0 log led to the
first one.
- UHD video size. On every UHD stream, the disc's menu code couldn't read the
video size and hit an error. M3GAN 2.0 hit it when you pressed Top Menu during the
film. - Stream lists in a play item. When menu code asked what a play item contains, it
got the video streams in place of the audio, subtitle and other streams.
🛠️ Fixed: disc menu graphics are checked before they are drawn
HDMV (non‑Java) Blu‑ray menu graphics were drawn from disc data without checks. A
damaged or unusual disc could make the box write past the end of the image buffer.
Menu graphics that don't fit the screen, or whose data is malformed, are now skipped
and logged instead.
Thanks to pannal, whose Blu‑ray menu port contains
these checks, and to avdvplus, whose CE21 Blu‑ray menu code they come from.
⚠️ Still wanted
- TV‑led Dolby Vision on other TVs. Do subtitles and menus now look the same in
TV‑led and player‑led? Tell us your TV model. - SDR output. The tone‑mapped route for subtitles and menus on SDR TVs still has
not been checked on screen. Reports welcome.
Under the hood
- common_drivers patch 0017. Port of matthane's
fc6903ed60and59183db15d,
re‑anchored around patches 0001 and 0015. The added lines are byte‑identical to the
PR. Under video priority with HDR10/HDR8 graphics,amdv_graphic_max= 0 and no
certification mode,amdv_parse_metadata_v2_stb()declares graphics at 2–3 cd/m²
(set_graphic_min/max_lum20000/30000). The module parameter
amdv_graphic_follow_video(default 0) is kept as a debug switch only, with no
Kodi setting. This build composites the whole GUI into an HDR8 FBO, so the change
covers the GUI and OSD as well as PGS. - Settings.
coreelec.amlogic.dolbyvision.gui.sinkpeakis now only visible when
coreelec.amlogic.dolbyvisionled= 1 (player‑led). Patch 0015's
amdv_graphics_from_sinkis overridden by 0017 in TV‑led, and the VS10 HDR10 OSD
brightness slider (never 0) already overrides it in HDR10 output. - libbluray patches 11 and 12. Patch 11 adds the missing
breakafter the 2160p
case inStreamInfo.getVideoSize(), andgetInputVideoSize()maps an unknown
format to 0x0. Patch 12 makesPlayItemImpl.getComponents()build each stream
list from its own stream type instead ofclip.getVideoStreams(). - HDMV overlay validation. A DRAW whose rectangle is empty or leaves the plane is
dropped, and so is an indexed image with no palette.w*his computed insize_t.
RLE runs are bounded to the image end, colours above 255 are rejected, and a
zero‑length run is accepted only as an end‑of‑line marker. Each rejection logs a
warning.
Source
- CoreELEC (distro):
SamuriHL/CoreELECtagv22.0-samurihl-20260926115953 - Kodi:
SamuriHL/coreelec-xbmctagv22.0-samurihl-20260926115953
Checksums (SHA256)
97baaf499339e17e97cd0b070ce3f2e26384a10dac3ed9274084b472aa82704b CoreELEC-Amlogic-no.aarch64-22.0-Piers-samurihl-EXPERIMENTAL_20260926115953.tar
43637b402208221ce6272a392e7da9582463763fdf78d46f92874a6860d73b10 CoreELEC-Amlogic-no.aarch64-22.0-Piers-samurihl-EXPERIMENTAL_20260926115953-Generic.img.gz