Skip to content

Instantly share code, notes, and snippets.

@lizTheDeveloper
Last active March 6, 2025 00:53
Show Gist options
  • Select an option

  • Save lizTheDeveloper/f5ecaecce53c235f985dbb01f9ce84f8 to your computer and use it in GitHub Desktop.

Select an option

Save lizTheDeveloper/f5ecaecce53c235f985dbb01f9ce84f8 to your computer and use it in GitHub Desktop.

Install exo on Android

1. Install Termux

2. Install a bunch of packages that don't compile from source using pkg

pkg update && pkg upgrade
pkg install git clang cmake make python numpy
pkg install libjpeg-turbo libpng libtiff libwebp eigen
pkg install libprotobuf  
pkg install ffmpeg

3. Make the Exo directory and clone needed materials:

mkdir ~/exo && cd ~/exo
git clone -b 4.10.0 https://github.com/opencv/opencv.git
git clone -b 4.10.0 https://github.com/opencv/opencv_contrib.git
git clone https://github.com/exo-explore/exo.git

4. Install Java

pkg install openjdk-21

5. Install and build the full Android SDK

# Define the Android SDK directory
export ANDROID_SDK_DIR=$HOME/android-sdk

# Create the necessary directories
mkdir -p $ANDROID_SDK_DIR/cmdline-tools

# Download the latest command-line tools for Linux
echo "Downloading Android command-line tools..."
curl -o cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip

# Extract the tools
echo "Extracting Android command-line tools..."
unzip cmdline-tools.zip -d $ANDROID_SDK_DIR/cmdline-tools
rm cmdline-tools.zip

# Rename the extracted folder to 'latest'
mv $ANDROID_SDK_DIR/cmdline-tools/cmdline-tools $ANDROID_SDK_DIR/cmdline-tools/latest

# Set JAVA_HOME environment variable for OpenJDK 21
export JAVA_HOME=/data/data/com.termux/files/usr/lib/jvm/java-21-openjdk
echo "export JAVA_HOME=$JAVA_HOME" >> ~/.bashrc
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc

# Set Android SDK environment variables
echo "Setting up environment variables..."
echo "export ANDROID_SDK_ROOT=$ANDROID_SDK_DIR" >> ~/.bashrc
echo "export PATH=\$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:\$PATH" >> ~/.bashrc
echo "export PATH=\$ANDROID_SDK_ROOT/platform-tools:\$PATH" >> ~/.bashrc
source ~/.bashrc


# Install required packages
echo "Installing Android SDK packages..."
sdkmanager --update

6. Build ADB for ARM64

mkdir -p ~/adb-arm64
cd ~/adb-arm64

# Download the ARM64 version of ADB
curl -o platform-tools.zip https://dl.google.com/android/repository/platform-tools-latest-linux.zip

# Extract
unzip platform-tools.zip
rm platform-tools.zip

# Set ADB path
echo "export PATH=$HOME/adb-arm64/platform-tools:\$PATH" >> ~/.bashrc
source ~/.bashrc

7. Make sure it works

# Verify installation
echo "Verifying installation..."
sdkmanager --list
adb version

echo "Android SDK setup complete!"

7. Configure the Build with CMake

cd ~/exo/opencv
mkdir build && cd build

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=$PREFIX -D CMAKE_OPENCV_VERBOSE=OFF -D BUILD_SHARED_LIBS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D WITH_QT=OFF -D WITH_GTK=OFF -D WITH_OPENGL=OFF -D WITH_VTK=OFF -D WITH_IPP=OFF -D WITH_TBB=OFF -D WITH_OPENMP=ON -D WITH_FFMPEG=ON -D WITH_GSTREAMER=OFF -D BUILD_OPENCV_PYTHON3=ON -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=~/src/opencv_contrib/modules .. 

6.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment