Libhybris: Load Android Libraries, Override Bionic Symbols
Several Phoronix readers have written in about libhybris, a way to load Android libraries while overriding some Bionic symbols with those symbols from glibc.
The code to libhybris is currently hosted on GitHub.
So, introducing libhybris, Hybris is a solution that commits hybris, by allowing us to use bionic-based HW adaptations in glibc systems. Practically, if you know what libdl is, this is a libdl-API-like implementation that happens to be able to load Android libraries, and overrides some symbols from bionic with glibc based ones.Continue reading on Google Plus.
The applications for this is for example being able to use binary-only android HW adaptation parts - GPU, RIL, etc. Included are example thin wrappers for libEGL and libGLESv2, with test programmes. The solution is a bit alpha and the pthread implementation needs wrapping/sanity, but currently, it works and shows quite interesting promise.
Shown on video is a unmodified test program, built against Mesa headers and glibc, using GL shaders, fullscreen on a Qualcomm GPU on a HP Touchpad (thanks to WebOS Developer Relations for sending me one) with the GPU userland driver being utilized. Android kernel is utilized with glibc userland. Future directions can be Wayland on top of this solution, utilizing vendor RIL .so's, etc. Come to #mer on irc.freenode.net to discuss this more and get involved in testing this on various hardware and do more amazing demos than the one shown on the demo.
The code to libhybris is currently hosted on GitHub.
8 Comments