We used libhybris for one single thing. Getting Android/bionic linked graphic drivers up and running under embedded glibc linux. Since all the hardware vendors startet to only deliver their drivers in binary form and exclusivly for Android, these is usually the only way to get GPU up and running.

libhybris was originally developed for Sailfish OS that is using Android drivers of all kind under a glibc enviroment. The graphic Stack is Android OpenGL driver > libhybris > wayland. Other projects like the Intel/Samsung "mer" project is doing exactly the same.

If you are interessted how to install and use it, there is a rudimentary how to: http://www.cnx-software.com/2013/04/21/how-to-use-libhybris-and-android-gpu-libraries-with-mer-linux-on-the-cubieboard/

This thing is a therible hack, but unfortunatly this is often the only way to get things like OpenGL, hw video decoding etc. working on embedded arm linux. There are no signs that companies like Qualcom or ARM themself with their Mali GPU will deliver open source drivers.

Linking your own apps to bionic/libhybris makes absolutly no sense. The reason for libhybris is to use bionic binaries (drivers) within glibc based enviroments.


On Mon, Sep 1, 2014 at 11:08 PM, Rich Felker <dalias@libc.org> wrote:
On Mon, Sep 01, 2014 at 10:55:26AM +0200, Jens Staal wrote:
> Hi
>
> Has anyone tried if libhybris will emulate the bionic libc properly on top of
> musl libc? Alternatively, are there plans for bionic binary/source
> compatibility in musl like the glibc compatibility (or would this contribute
> to bloat?).
>
> I was mostly curious to look into the possiblility of building AOSP (or Mer)
> with musl instead of bionic (or glibc in the case of Mer), but for Android app
> (those built with NDK) compatibility, one would then need libhybris.
>
> right now just thinking aloud - no real plans at the moment :)

While I haven't look at the details for how it works, I'm fairly
doubtful that using libhybris would be practical. My guess is that
you'll find it fairly glibc-specific, but perhaps more importantly I'm
not sure what benefit you would get from having apps built against
Bionic using musl. If you have particular aims in mind, let me know,
but my feeling is that it would be a lot more practical to just fix up
the things Bionic is doing that are gratuitously different/broken to
get to a point where programs using Bionic run cleanly side by side
with musl. But if the issue is binary apps using native NDK code with
the Bionic ABI, but where you want the non-native code to run on a
musl-linked Dalvik rather than a Bionic-linked one, and if this all
takes place in the same process context, then maybe something like
libhybris really is needed.

I'm quite interested in this project as a prototype for how Android
could be moved from Bionic to musl, and (optionally, but I think this
is the right direction) steered back from its gratuitous
incompatibilities in filesystem layout, handling of dns, user/group
lookups, etc. and re-unified with Linux. Please keep us informed if
you make any interesting progress!

Rich