apkenv

A compatibility layer for applications packaged as ".apk".

News

2014-03-22 A new release, apkenv 42.7.0 is out. This release fixes the missing depth buffer problem (rendering artifacts) on Fremantle and Harmattan, includes lots if improvements with new debugging options, stability and compatibility fixes for Fremantle, as well as a brand new support module for Petals Redux. For your convenience, N9/N950 apkenv builds are available below.

2013-04-22 Two new support modules have now been merged and are ready for testing. Thanks to notaz and liar for their respective modules.

2013-04-10 New work-in-progress module by liar has been announced on TMO. See pull request 9 for more information.

2013-03-03 Coverage of apkenv for Pandora by PandoraLive.

2013-01-09 crowriot has ported apkenv to the OpenPandora games console.

2012-12-23 I've added two incomplete support modules to the repository that still need some work. Also, apkenv 42.3.14 was released.

2012-12-21 Art-O has contributed a new module for FN - again, you'll find it int the Git repository.

2012-12-20 Art-O has contributed a new module for AB - you'll find it in the Git repository.

2012-11-19 apkenv source code released. Happy hacking!

2012-11-16 Wrapper generator scripts source code released.

2012-11-03 The old binaries are outdated and should not be used anymore.

2012-10-21 Project announced, initial proof-of-concept released.

Disclaimer

Only use this compatibility layer for applications that you have the rights to use. If you are unsure, DO NOT use this compatibility layer, and use Nitdroid instead, which is also able to run .apk files on the target devices (and all of them, instead of only a very small subset).

This project is a proof-of-concept on how applications targetting one platform can be made compatible with not so much effort as initially thought.

Source code

You can find the source code for apkenv on Github:

N9/N950 packages

Building from source

You need the Harmattan Platform SDK (or Fremantle Platform SDK) to build apkenv. On Fremantle, you need libsdl-gles1.2-dev in addition to all normal build dependencies. I usually build it like that:

make clean
DEBUG=0 make
make strip
scp apkenv *.apkenv.so user@192.168.2.15:

To build for Maemo 5 (Fremantle), use the following command instead of make:

FREMANTLE=1 make

Officially-supported apps

The following apps are supported "officially", with apk files freely available for you to try apkenv with.

Dependencies

Harmattan (N950, N9)

apt-get install libsdl1.2 libsdl-mixer1.2 libgles1-sgx-img

Fremantle (N900)

apt-get install libsdl1.2 libsdl-mixer1.2 libgles1-sgx-img libsdl-gles1.2-1

Bionic libraries

The Bionic libraries that you might need are available in the libs/ folder in the source repository, and are taken from Nitdroid Alpha 4.

Support modules

The following support modules are available:

If you know of an open source Android game that uses OpenGL ES and the NDK, or if you are the author of a (possibly closed source) game and want to add support for your game, get in touch or submit a patch.

You alone are responsible to check if you have the necessary rights to use this layer with any specific apk file. Please be sure to read the Disclaimer above!

License

The apkenv code written by me is licensed under a Simplified BSD License.

This application incorporates parts of the Bionic C library, the Bionic linker and libnativehelper under the Apache License 2.0.

This application incorporates parts of Minizip under the zlib license.

Thomas Perl · 2013-04-10