Proof of concept for using xmrig mining inside an Android APK
Switch branches/tags
Nothing to show
Clone or download
upost Merge pull request #3 from dmitvitalii/master
Add support of armeabi-v7a architecture
Latest commit 54a77fa Jun 26, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Revert adding gradle scripts to ingore and restore gradlew.bat Apr 10, 2018
LICENSE added threads and max cpu usage settings to the UI. (changes need res… Jan 19, 2018
build.gradle Initial commit Jan 19, 2018 Initial commit Jan 19, 2018
gradlew.bat Revert adding gradle scripts to ingore and restore gradlew.bat Apr 10, 2018

Monero Miner for Android

Proof of concept using the xmrig miner inside an Android APK. Get the source at github:

Based on the binaries from Which is based on the code from


This will currently only work on devices with ARM64 architecture.

Install and run the app, enter your pool and wallet data, then press the start button to start mining or stop to stop mining. The prefilled wallet is mine, so if you try the app, just keep it and I earn, ehm... next to nothing ;-) The help button will show xmrig's help output for convenience.

As this is considered a proof of concept, only pool address, username, threads and max cup usage can be edited in the UI currently (there is currently no sanity check to your inputs). You can change the rest of the config in assets/config.json. The configuration is set to low values and regular display of hashrate is set to 1m.


The xmrig binary is copied to the app's internal directory along with its dependent libraries. (This is done because it can only be executed there.) Then, the binary is started using the ProcessBuilder class, and the output is captured into the app's scrolling pane once each secons.

Currently only arm64 binaries are included, and the app will refuse to work on other architectures like x86 or 32 bit devices.


xmrig is licensed as GPLv3, thus this derivative work also is. You need to consider this if you plan to build a "real" Android app. You'd propably need to make it GPLv3 also, unless you can somehow make use of the GPL clause which allows to bundle a GPLv3 binary with another propietary licensed binary.