This is a small repo documenting the reverse enginieering of Jolla's Android AppSupport (aka Aliendalvik), including steps on how to run it on other linux distros than Sailfish OS.
Aliendalvik is a complex piece of software and requires lots of setup to run. This is a very rough set of steps, it won't work on the first try, be prepared to solve problems.
- Get a supported phone with Sailfish OS and Android AppSupport (see https://shop.jolla.com/) and grab the necessary binaries
- Start the phone, go through setup of Sailfish OS and setup Android AppSupport
- Get all the necessary files from the phone via SSH, see files.txt
- Set up dependencies on the target device
- Install dependencies from the Arch ARM repos: lxc packagekit-qt5 mlite qt5-sensors qt5-location python-pywayland dbus-glib
- Build necessary libraries that aren't in the Arch ARM repos: libglibutil libgbinder
- Build custom libraries from forks: libQtContacts, libqtcontacts_folks, libqtposition_geoclue2, libqtsensors_iio-sensor-proxy
- Install shimming services on the target device, see shimming/
- Build and install patched mobile-mutter and libwayland, see patches/
- Get the vanilla (not GApps) android system.img and vendor.img from Waydroid
-
Copy all the aliendalvik config, binaries and libraries to the target device, see files.txt again
-
Create necessary users, groups, and configure a few more things on the device, see setup-environment.txt
-
Edit the aliendalvik configuration on the device, see configure.txt
-
Do a manual test-run of aliendalvik to check if everything works, see running.txt
-
If you managed to run everything, there's some systemd services and scripts to automate startup of aliendalvik in the automation/ folder