[libbluray-devel] Found a JRE compiled for Android (ARM)

Shaya Potter spotter at gmail.com
Mon Jan 25 15:22:00 UTC 2021


I know, but it isn't like they are selling it, I doubt they would be
antagonistic, its more likely that they don't see it or are too busy with
other things.  no harm or foul in trying to reach out.

On Mon, Jan 25, 2021 at 5:17 PM Vitor Dall'Acqua <veggav at gmail.com> wrote:

> It's not the termux team.
>
> The JRE is like an addon. Someone made it and added to github, without
> source, a few years ago.
>
> On Mon, Jan 25, 2021 at 12:12 PM Shaya Potter <spotter at gmail.com> wrote:
>
>> termux is an open source project, I doubt they would be antagonistic to
>> open source.  Just explain why you are looking to be able to build a jvm to
>> install with kodi.  I'm pretty sure they would understand.
>>
>> On Mon, Jan 25, 2021 at 5:06 PM Vitor Dall'Acqua <veggav at gmail.com>
>> wrote:
>>
>>> No source as usual.
>>>
>>> And I have asked on this git and the termux one for source.
>>>
>>> I doubt I'll get any reply.
>>>
>>> On Mon, Jan 25, 2021, 12:00 PM Shaya Potter <spotter at gmail.com> wrote:
>>>
>>>> its not protection, it's that the .so file has to be compiled in the
>>>> same way as the kodi binary.  if they aren't compiled in an equivalent way,
>>>> then you can't load it and wll get errors such as you see.  As I said, you
>>>> should reach out to the people who provide those jvm binaries on github and
>>>> say you wan to try to bring jvm to kodi on android, but need to be able to
>>>> compile it from scratch to do so to work with kodi, do they have the source
>>>> code available so that people can try to make it work with kodi?
>>>>
>>>> On Mon, Jan 25, 2021 at 3:44 PM Vitor Dall'Acqua <veggav at gmail.com>
>>>> wrote:
>>>>
>>>>> So close yet so far...
>>>>>
>>>>> It seems, 5 years ago, that a group forked Kodi (in that time named
>>>>> XBMC) and sold it as Vidon XBMC.
>>>>> This had bluray menu support for Android boxes.
>>>>>
>>>>> You can get the apk today from their site:
>>>>> http://vidon.me/
>>>>>
>>>>> If you unpack the library you see a libbdjvm.so
>>>>> So renamed it to libjvm.so and packed it inside the 32bits version of
>>>>> Kodi.
>>>>> Fired Kodi and a bluray ISO:
>>>>>
>>>>> 2021-01-25 11:28:52.360 T:20316   DEBUG <general>:
>>>>> CBlurayCallback::Logger - dl_posix.c:54: can't open library 'libjvm.so':
>>>>> dlopen failed:
>>>>> "/mnt/expand/cab01563-bcca-48fa-a0bf-0fbddaf9b192/app/org.xbmc.kodi19DV32-Oul0BM1JFWrYMUmo3Pd3yA==/lib/arm/libjvm.so"
>>>>> has text relocations (
>>>>> https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md#Text-Relocations-Enforced-for-API-level-23
>>>>> )
>>>>>
>>>>> No source, not possible to recompile =(
>>>>>
>>>>> I guess this protection is now part of Android OS and can't be
>>>>> disabled just for testings, right?
>>>>>
>>>>> On Sun, Jan 24, 2021 at 1:11 PM Vitor Dall'Acqua <veggav at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> This is a neat idea but this kind defeats the purpose, unless it was
>>>>>> mostly a copy and paste solution from what you already did and easy to
>>>>>> achieve.
>>>>>> Also I don't know much of how to work with the skin kodi uses. I
>>>>>> believe it uses information stored in xml files to show content on the
>>>>>> screen.
>>>>>>
>>>>>> but it's kinda of a bittersweet solution, menus are part of the
>>>>>> appeal of physical media, that's the beauty of it.
>>>>>>
>>>>>> On Sun, Jan 24, 2021 at 1:03 PM Shaya Potter <spotter at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> ah, ok :)  understood.
>>>>>>>
>>>>>>> On Sun, Jan 24, 2021 at 6:02 PM Vitor Dall'Acqua <veggav at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> the thing is, I'm not a computer engineer, I'm just a veterinary
>>>>>>>> that knows how to solve a few problems.
>>>>>>>> Doing a project in this magnitude is beyond what I can do.
>>>>>>>>
>>>>>>>> I would gladly help fund something like that, and I believe many
>>>>>>>> others in the Kodi forum would feel the same but this is as far as my
>>>>>>>> skills go.
>>>>>>>>
>>>>>>>> On Sun, Jan 24, 2021 at 12:55 PM Shaya Potter <spotter at gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> as I said, reach out to them to get the source code and put the
>>>>>>>>> work into building it with the ndk that kodi uses.  One can also look at
>>>>>>>>> phoneme (as petri mentioned)
>>>>>>>>>
>>>>>>>>> https://github.com/nikita36078/phoneME-android (example, don't
>>>>>>>>> know if this is the most uptodate version of the phoneme / android code
>>>>>>>>> floating around)
>>>>>>>>>
>>>>>>>>> this is a java me environment and while not what libbluray is
>>>>>>>>> commonly used with today, should be all that's needed for blurays to run.
>>>>>>>>> With that said, I don't know what limitations it has and how its graphic
>>>>>>>>> drawing capabilities will work with libbluray.
>>>>>>>>>
>>>>>>>>> getting it to build with the ndk that kodi uses is probably going
>>>>>>>>> to be a bit of work (perhaps an understatement), but if you do, all these
>>>>>>>>> linking problems should hopefully disappear. (in the case of java me, it's
>>>>>>>>> no longer the jvm binary, but the cvm binary that you will be using)
>>>>>>>>>
>>>>>>>>> On Sun, Jan 24, 2021 at 5:45 PM Vitor Dall'Acqua <veggav at gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Today I tried with the 32bits build of Kodi with the arm build of
>>>>>>>>>> that java for termux, now that I know how to add files to the apk, it was
>>>>>>>>>> much easier.
>>>>>>>>>>
>>>>>>>>>> So, the files for java need to be in the lib folder of the apk
>>>>>>>>>> and adding subfolders break the jarsigner.
>>>>>>>>>> This means some files will be overwritten and I used the JRE ones
>>>>>>>>>> to do so.
>>>>>>>>>>
>>>>>>>>>> with the 64bits version the error is always the same ELF TLS DT
>>>>>>>>>> entry is failing, with some google skills this seem like something about
>>>>>>>>>> improperly linking the libs and this would only be possible to overcome
>>>>>>>>>> with the source and the possibility to build our own java for android.
>>>>>>>>>>
>>>>>>>>>> Next the 32bits, first it failed because of ld-linux-armhf.so.3
>>>>>>>>>> not found. This isn't part of the package so I grabbed it
>>>>>>>>>> from arm-linux-gnueabihf.
>>>>>>>>>> $ sudo apt-get install libc6-armhf-cross
>>>>>>>>>> and it was found
>>>>>>>>>> in usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3
>>>>>>>>>>
>>>>>>>>>> so, after that the error is:
>>>>>>>>>> 2021-01-24 13:32:26.058 T:18658   DEBUG <general>:
>>>>>>>>>> CBlurayCallback::Logger - dl_posix.c:54: can't open library 'libjvm.so':
>>>>>>>>>> dlopen failed: unknown reloc type 17 @ 0x981984c8 (65342)
>>>>>>>>>>
>>>>>>>>>> If you guys know anything else I would be happy to try but...
>>>>>>>>>> beyond that I have no idea what can be done.
>>>>>>>>>> I'm throwing the towel and giving up.
>>>>>>>>>>
>>>>>>>>>> It would be outstanding to have full blurays and blurays uhd on
>>>>>>>>>> Android. As Shaya said it is the holy grail because it's a much better
>>>>>>>>>> experience than having a computer running windows and CoreElec is very
>>>>>>>>>> hardware restricted.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sat, Jan 23, 2021 at 9:02 PM Vitor Dall'Acqua <
>>>>>>>>>> veggav at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> I managed to insert everything into the apk, here's how:
>>>>>>>>>>>
>>>>>>>>>>> use sdk command lines tool aapt and do:
>>>>>>>>>>> $aapt add -v apkname.apk files/*
>>>>>>>>>>>
>>>>>>>>>>> sign with
>>>>>>>>>>> jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore
>>>>>>>>>>> ~/.android/debug.keystore apkname.apk androiddebugkey
>>>>>>>>>>>
>>>>>>>>>>> ok, now that we have everything inside the apk and unpaking the
>>>>>>>>>>> way we want here's the new problem:
>>>>>>>>>>> 2021-01-23 21:58:03.326 T:30186   DEBUG <general>:
>>>>>>>>>>> CBlurayCallback::Logger - dl_posix.c:54: can't open library 'libjvm.so':
>>>>>>>>>>> dlopen failed: unsupported ELF TLS DT entry in
>>>>>>>>>>> "/mnt/expand/cab01563-bcca-48fa-a0bf-0fbddaf9b192/app/org.xbmc.kodi19DV-ZUB_1OMT4YBiycijbgSzvA==/lib/arm64/libjvm.so"
>>>>>>>>>>>
>>>>>>>>>>> so, is this a game over without the source code?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Sat, Jan 23, 2021 at 7:53 PM Vitor Dall'Acqua <
>>>>>>>>>>> veggav at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Ok 10 hours of work is enough for a day. I'll be back tomorrow.
>>>>>>>>>>>>
>>>>>>>>>>>> And from what I see we actually need the files inside
>>>>>>>>>>>>
>>>>>>>>>>>> /mnt/expand/cab01563-bcca-48fa-a0bf-0fbddaf9b192/app/org.xbmc.kodi19DV-
>>>>>>>>>>>> BHAaVSj7u8lhvDk_OSQttQ==/
>>>>>>>>>>>>
>>>>>>>>>>>> looking clearly now it's no == the path actually has 2 =
>>>>>>>>>>>>
>>>>>>>>>>>> I already know how to pack stuff using Kodi make apk, I'm
>>>>>>>>>>>> adding here:
>>>>>>>>>>>>
>>>>>>>>>>>> build/tools/android/packaging/xbmc/build/intermediates/stripped_native_libs/debugUnsigned/out/lib/arm64-v8a/
>>>>>>>>>>>>
>>>>>>>>>>>> and when compiling those are showing up.. but for some reason..
>>>>>>>>>>>> the *so.6 isn't going.. probably because it is a link...
>>>>>>>>>>>>
>>>>>>>>>>>> On Sat, Jan 23, 2021 at 7:37 PM Petri Hintukainen <
>>>>>>>>>>>> phintuka at users.sourceforge.net> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> la, 2021-01-23 kello 23:38 +0200, Shaya Potter kirjoitti:
>>>>>>>>>>>>> > On Sat, Jan 23, 2021, 11:32 PM Petri Hintukainen <
>>>>>>>>>>>>> > phintuka at users.sourceforge.net> wrote:
>>>>>>>>>>>>> > > la, 2021-01-23 kello 17:43 -0300, Vitor Dall'Acqua
>>>>>>>>>>>>> kirjoitti:
>>>>>>>>>>>>> > > > Well, I'm no expert but when I tried to add it along
>>>>>>>>>>>>> with other
>>>>>>>>>>>>> > > > libraries it ended up in the same folder along with all
>>>>>>>>>>>>> other
>>>>>>>>>>>>> > > libs.
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > > Then, it should find libjvm.so from there without any path
>>>>>>>>>>>>> ? If
>>>>>>>>>>>>> > > JAVA_HOME is unset, first probed library is "libjvm.so"
>>>>>>>>>>>>> without any
>>>>>>>>>>>>> > > path added to it.
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > > If not, you could try adding following snippet to
>>>>>>>>>>>>> > > bdj.c:_load_jvm(),
>>>>>>>>>>>>> > > before "java_home = getenv("JAVA_HOME")" line:
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > >     handle = dl_dlopen("/lib/arm64/libjvm.so", NULL);
>>>>>>>>>>>>> > >     if (handle) {
>>>>>>>>>>>>> > >         return handle;
>>>>>>>>>>>>> > >     }
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > > But JVM probably won't find other files it needs if those
>>>>>>>>>>>>> are
>>>>>>>>>>>>> > > inside
>>>>>>>>>>>>> > > the apk.
>>>>>>>>>>>>> >
>>>>>>>>>>>>> > I was arguing that the whole jvm needs to be in the apk, see
>>>>>>>>>>>>> the
>>>>>>>>>>>>> > phoneme apk I linked to.  It includes cvm in /assets/
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yes, that seems to allow keeping the directory structure.
>>>>>>>>>>>>> libjvm.so
>>>>>>>>>>>>> probably looks for the other files using paths relative to it's
>>>>>>>>>>>>> location. But how are files in assets accessed? If those are
>>>>>>>>>>>>> not
>>>>>>>>>>>>> accessible from "normal" filesystem it doesn't work.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Can we use something similar to this:
>>>>>>>>>>>>>
>>>>>>>>>>>>> /mnt/expand/cab01563-bcca-48fa-a0bf-0fbddaf9b192/app/org.xbmc.kodi19DV-
>>>>>>>>>>>>> BHAaVSj7u8lhvDk_OSQttQ==/lib/arm64/libkodi.so
>>>>>>>>>>>>>
>>>>>>>>>>>>> If not, those files need to be extracted somewhere in the
>>>>>>>>>>>>> filesystem.
>>>>>>>>>>>>>
>>>>>>>>>>>>> > _______________________________________________
>>>>>>>>>>>>> > libbluray-devel mailing list
>>>>>>>>>>>>> > libbluray-devel at videolan.org
>>>>>>>>>>>>> > https://mailman.videolan.org/listinfo/libbluray-devel
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> libbluray-devel mailing list
>>>>>>>>>>>>> libbluray-devel at videolan.org
>>>>>>>>>>>>> https://mailman.videolan.org/listinfo/libbluray-devel
>>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>> libbluray-devel mailing list
>>>>>>>>>> libbluray-devel at videolan.org
>>>>>>>>>> https://mailman.videolan.org/listinfo/libbluray-devel
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> libbluray-devel mailing list
>>>>>>>>> libbluray-devel at videolan.org
>>>>>>>>> https://mailman.videolan.org/listinfo/libbluray-devel
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> libbluray-devel mailing list
>>>>>>>> libbluray-devel at videolan.org
>>>>>>>> https://mailman.videolan.org/listinfo/libbluray-devel
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> libbluray-devel mailing list
>>>>>>> libbluray-devel at videolan.org
>>>>>>> https://mailman.videolan.org/listinfo/libbluray-devel
>>>>>>>
>>>>>> _______________________________________________
>>>>> libbluray-devel mailing list
>>>>> libbluray-devel at videolan.org
>>>>> https://mailman.videolan.org/listinfo/libbluray-devel
>>>>>
>>>> _______________________________________________
>>>> libbluray-devel mailing list
>>>> libbluray-devel at videolan.org
>>>> https://mailman.videolan.org/listinfo/libbluray-devel
>>>>
>>> _______________________________________________
>>> libbluray-devel mailing list
>>> libbluray-devel at videolan.org
>>> https://mailman.videolan.org/listinfo/libbluray-devel
>>>
>> _______________________________________________
>> libbluray-devel mailing list
>> libbluray-devel at videolan.org
>> https://mailman.videolan.org/listinfo/libbluray-devel
>>
> _______________________________________________
> libbluray-devel mailing list
> libbluray-devel at videolan.org
> https://mailman.videolan.org/listinfo/libbluray-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/libbluray-devel/attachments/20210125/6dd26160/attachment-0001.html>


More information about the libbluray-devel mailing list