Libhybris: Load Android Libraries, Override Bionic Symbols

Posted by Michael Larabel on September 25, 2012

Several Phoronix readers have written in about libhybris, a way to load Android libraries while overriding some Bionic symbols with those symbols from glibc.

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.

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.
Continue reading on Google Plus.

The code to libhybris is currently hosted on GitHub.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  2. New NVIDIA Linux Driver Supports The GeForce GTX 780
  3. Chrome 28 To Offer More Speed Improvements
  4. Digia Announces "Boot To Qt" Project
  5. X.Org Libraries Hit By Round Of Security Issues
  6. Wayland's Weston Gets Output Scaling Support
  7. Raspberry Pi Gets New Wayland Weston Renderer
  8. Debian GNU/Hurd 2013 Release Brings New Packages
  9. Intel Ultrabook Performance Is Faster With Mesa 9.2
  10. Hot Relocation HDD To SSD Support For Btrfs
  11. Phoronix Test Suite 4.6.0 "Utsira" Released
Latest Forum Talk
  1. Digia Announces "Boot To Qt" Project
  2. Debian GNU/Hurd 2013 Release Brings New Packages
  3. KDE 4.11 Will Be The Last Major KDE4 Workspaces...
  4. Raspberry Pi Gets New Wayland Weston Renderer
  5. X.Org Libraries Hit By Round Of Security Issues
  6. Chrome 27 Loads Web Pages Faster
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite