Konubinix' opinionated web of thoughts

How to Contribute to Lemuroid

Fleeting

git clone https://github.com/Swordfish90/Lemuroid
cd Lemuroid
git submodule update --init --recursive   # ~1.1G of libretro
{
  description = "Lemuroid — Android emulation app build environment";

  inputs = {
    android-stack.url = "github:konubinix/devel?dir=flakes/android";
    # local dev: android-stack.url = "path:/home/sam/prog/devel/flakes/android";
  };

  # The dev shell (JDK 17, Gradle 8, the SDK and the aapt2 override) lives
  # in android-stack; this flake just re-exports it.
  outputs = { android-stack, ... }: {
    devShells = android-stack.devShells;
  };
}

Build the debug APK

Builds freeBundleDebug (free flavor, cores bundled in). APK lands in lemuroid-app/build/outputs/apk/freeBundle/debug/lemuroid-app-free-bundle-debug.apk.

nix develop --impure -c ./gradlew assembleFreeBundleDebug

Install on a connected device

Debug build’s applicationId is com.swordfish.lemuroid.debug — it coexists with the Play Store / F-Droid release (com.swordfish.lemuroid). To switch device, swap piano for your device alias.

clk android -d piano adb package install ./lemuroid-app/build/outputs/apk/freeBundle/debug/lemuroid-app-free-bundle-debug.apk --flow

Iterate

Edit code, then rebuild + reinstall in one go:

nix develop --impure -c ./gradlew assembleFreeBundleDebug \
  && clk android -d piano adb package install ./lemuroid-app/build/outputs/apk/freeBundle/debug/lemuroid-app-free-bundle-debug.apk --flow

Cleanup (start over)

Wipe the fork; the next clone+tangle from this file rebuilds everything.

cd ~/test/next && rm -rf Lemuroid

Uninstall the debug APK from the device:

clk android -d piano adb shell pm uninstall com.swordfish.lemuroid.debug

Notes linking here