This guide will help you build the Axe-OS Multitool app for Android devices.
Download and install Android Studio from: https://developer.android.com/studio
During installation, make sure to select:
- ✅ Android SDK
- ✅ Android SDK Platform
- ✅ Android Virtual Device
Option A: Download directly
- Download from: https://adoptium.net/
- Install JDK 17 or newer
Option B: Use Chocolatey (Windows)
choco install temurin17Windows:
- Open "Edit the system environment variables" from Start menu
- Click "Environment Variables" button
- Add these System Variables:
Variable: ANDROID_HOME
Value: C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk
Variable: JAVA_HOME
Value: C:\Program Files\Eclipse Adoptium\jdk-17.x.x-hotspot
- Edit the
Pathvariable and add:
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\cmdline-tools\latest\bin
%ANDROID_HOME%\emulator
- Restart your terminal/PowerShell for changes to take effect
Open Android Studio:
-
Go to: Tools → SDK Manager
-
In "SDK Platforms" tab, install:
- ✅ Android 13.0 (Tiramisu) - API Level 33
- ✅ Android 12.0 (S) - API Level 31
-
In "SDK Tools" tab, install:
- ✅ Android SDK Build-Tools (latest)
- ✅ Android SDK Command-line Tools
- ✅ Android SDK Platform-Tools
- ✅ Android Emulator
- ✅ NDK (Side by side) - version 25.x or newer
-
Click "Apply" and wait for installation to complete
Once prerequisites are installed, run:
# Verify environment variables are set
echo $env:ANDROID_HOME
echo $env:JAVA_HOME
# Initialize Android support
npm run tauri android initThis will create:
src-tauri/gen/android/- Android project files- Android manifest and Gradle configurations
After initialization, the Android manifest will be created automatically. You may need to verify these permissions are present:
File: src-tauri/gen/android/app/src/main/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Network permissions for connecting to miners -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:label="AxeOS Live!"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="true"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
<!-- Activity configuration will be auto-generated -->
</application>
</manifest>Important: android:usesCleartextTraffic="true" allows HTTP connections to local miners.
# Build and run on connected device or emulator
npm run tauri android devThis will:
- Build the Next.js frontend
- Compile the Rust backend for Android
- Launch the app on your device/emulator
# Build production APK and AAB
npm run tauri android buildOutput files:
- APK:
src-tauri/gen/android/app/build/outputs/apk/release/app-release-unsigned.apk - AAB:
src-tauri/gen/android/app/build/outputs/bundle/release/app-release.aab(for Play Store)
- Open Android Studio
- Go to: Tools → Device Manager
- Click "Create Device"
- Select a phone (e.g., Pixel 6)
- Select system image: API 33 (Android 13)
- Click "Finish"
# Start emulator (if not already running)
# Then run dev build
npm run tauri android dev- On your Android device: Settings → About Phone
- Tap "Build Number" 7 times
- Go back to Settings → Developer Options
- Enable "USB Debugging"
-
Connect via USB cable
-
Accept "Allow USB Debugging" prompt on device
-
Verify connection:
adb devices
-
Run app:
npm run tauri android dev
To distribute your app, you need to sign it:
keytool -genkey -v -keystore axeos-release.keystore -alias axeos -keyalg RSA -keysize 2048 -validity 10000# Sign the APK
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore axeos-release.keystore app-release-unsigned.apk axeos
# Verify signature
jarsigner -verify -verbose -certs app-release-unsigned.apk
# Align the APK (optimize for installation)
zipalign -v 4 app-release-unsigned.apk AxeOS-Live-v1.0.0.apkMake sure you:
- Set the environment variable correctly
- Restarted your terminal
- The path points to the correct SDK location
Verify with:
echo $env:ANDROID_HOME # PowerShell
echo %ANDROID_HOME% # CMDInstall NDK from Android Studio:
- Tools → SDK Manager
- SDK Tools tab
- Check "NDK (Side by side)"
- Click Apply
Check logcat for errors:
adb logcat | grep -i errorMake sure android:usesCleartextTraffic="true" is in your AndroidManifest.xml
The app already includes mobile optimizations:
✅ Responsive Layout
- Miner cards stack vertically on mobile
- Touch-optimized button sizes
- Mobile-specific header layout
✅ Platform Detection
- Uses
useIsMobile()hook - Automatically adjusts UI for screen size
✅ Network Access
- Configured for local network access
- HTTP support for miner connections
- Install Android Studio and SDK (see Prerequisites above)
- Set environment variables and restart terminal
- Run:
npm run tauri android init - Test on emulator:
npm run tauri android dev - Build release:
npm run tauri android build
- Tauri Android Docs: https://v2.tauri.app/develop/
- Android Developer Guide: https://developer.android.com/
- Tauri Discord: https://discord.gg/tauri
- Background Processing: Android limits background tasks. Auto-refresh may pause when app is backgrounded.
- Battery Optimization: Frequent polling (every 15s) may drain battery faster on mobile.
- Network Discovery: Android restricts local network scanning. Users must manually enter miner IPs.
- Permissions: Network access requires appropriate manifest permissions (already configured).
Need help? Check the troubleshooting section or open an issue on GitHub.