BD-J Blu-ray menu fails

BD-J Blu-ray menus fail on Amlogic-ne.aarch64 (Tanix W2 / S905W2) in CoreELEC 21.3 and 22.0 beta

I am testing BD-J Blu-ray menu playback on a Tanix W2 (Amlogic S905W2).

Hardware:

Device: Tanix W2

  • SoC: Amlogic S905W2

  • DT ID: s4_s905w2_2g

  • Architecture: aarch64

Problem:
Blu-ray discs with Java menus fail with:

One or more items failed to play

I compared different CoreELEC versions:

CoreELEC 20.5

  • tools.jre.zulu contains:

    jre/lib/aarch64/jli/libjli.so
    
  • Java (should) start correctly:

    OpenJDK 64-Bit Server VM (Zulu8.38.0.162-CA-linux_aarch64)
    
  • libbluray is present:

    /usr/lib/libbluray.so.2.4.3
    

CoreELEC 21.3-Omega

  • tools.jre.zulu contains only:

    jre/lib/arm/jli/libjli.so
    
  • Java fails to start:

    error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
    

CoreELEC 22.0 Piers beta1

  • Same issue as 21.3:

    jre/lib/arm/jli/libjli.so
    
  • Java fails to start with the same error.

It appears that the tools.jre.zulu addon installed on Amlogic-ne.aarch64 may contain the ARM (32-bit) JRE instead of the aarch64 JRE.

Also tried with CoreELEC 9.2.8 on an old MINIX NEO U1, and BD-J runs just fine there.

Seems the package has just been packed wrong.

I fixed it with this:

cd /storage/.kodi/addons/tools.jre.zulu/jre/lib

ln -s arm aarch64

Simple symlink. arm is wrong folder name.

Maybe. But it was intentional change long time back.

https://code.videolan.org/videolan/libbluray/-/blob/master/meson.build?ref_type=heads#L86

Not true. Arch is still correct.

What I mean is; system seems to look for the java libs in aarch64 folder which it obviously can’t find because it’s placed in “arm” folder. So by creating the symlink, stuff works.

Symbolic link can’t be used. The question is what is the correct folder name. Rename it, reboot and check if menus working.

Without the symbolic link, Kodi says: “One or more items failed to play. Check the log for more information about this message.”

With the symbolic link, it plays fine.

Trying to run java -version without the symbolic link via SSH, I get:

./java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory

With symbolic link, it works.

Renaming arm folder to aarch64 also seems to work yes. Will do that instead, if you say it’s better.

Not sure what you are doing but all seems ok on my side with arm folder.
But menu is not shown even with symbolic link. No idea why not anymore. It was working in the past.

CoreELEC (official): 22.0-Piers_nightly_20260730 (Amlogic-no.aarch64)

Homatics:~/ # cat /run/libreelec/debug/kodi.conf
DVDCSS_VERBOSE=2
AACS_DEBUG_FILE=/storage/debug_aacs
BD_DEBUG_FILE=/storage/debug_bd
AACS_DEBUG_MASK=0xffff
BD_DEBUG_MASK=0xffff

Homatics:~/ # cat /storage/debug_bd
bluray.c:1464: libbluray version 1.4.0
bluray.c:1489: BLURAY initialized!
register.c:418: bd_psr_write(18, 16777215): no change in value
disc.c:333: failed opening UDF image (null)
aacs.c:83: AACS/Unit_Key_RO.inf not found. No AACS protection.
bdj.c:457: Using JAVA_HOME '/storage/.kodi/addons/tools.jre.zulu'
bdj.c:313: Opening /storage/.kodi/addons/tools.jre.zulu/jre/lib/arm/server/libjvm ...
dl_posix.c:56: opened library '/storage/.kodi/addons/tools.jre.zulu/jre/lib/arm/server/libjvm.so'
file_posix.c:179: Opened POSIX file /storage/.kodi/addons/tools.jre.zulu/libbluray-j2se-1.4.0.jar (0x3b4731c0)
file_posix.c:55: Closed POSIX file (0x3b4731c0)
file_posix.c:179: Opened POSIX file /storage/.kodi/addons/tools.jre.zulu/libbluray-awt-j2se-1.4.0.jar (0x3b4731c0)
file_posix.c:55: Closed POSIX file (0x3b4731c0)
bdj.c:805: BD-J check: OK
disc.c:471: error opening dir BDMV/META/TN
meta_parse.c:184: Failed to open meta dir BDMV/META/TN/
meta_parse.c:303: using default disclib language 'eng'
bluray.c:1611: BLURAY destroyed!
bluray.c:1464: libbluray version 1.4.0
bluray.c:1489: BLURAY initialized!
register.c:418: bd_psr_write(18, 16777215): no change in value
disc.c:333: failed opening UDF image (null)
aacs.c:83: AACS/Unit_Key_RO.inf not found. No AACS protection.
bluray.c:1611: BLURAY destroyed!

Homatics:~/ # kodi-cat-log | grep arm
2026-08-04 17:19:28.117 T:2228    debug <general>: CBlurayCallback::Logger - bdj.c:313: Opening /storage/.kodi/addons/tools.jre.zulu/jre/lib/arm/server/libjvm ...
2026-08-04 17:19:28.316 T:2228    debug <general>: CBlurayCallback::Logger - dl_posix.c:56: opened library '/storage/.kodi/addons/tools.jre.zulu/jre/lib/arm/server/libjvm.so'