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
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
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
# 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 ..