Setup Offline Build for Android
Install Gradle and Android SDK to build app from Ubuntu cmdline.
Install Gradle
Link: https://docs.gradle.org/current/userguide/installation.html
wget https://services.gradle.org/distributions/gradle-5.4.1-all.zip
unzip gradle-5.4.1-all.zip
mv gradle-5.4.1/ ~/.gradle
Include offline components in your Gradle project
Link: https://developer.android.com/studio/intro/studio-config#offline
cat > ~/.gradle/init.d/offline.gradle <<- EOF
def reposDir = new File(System.properties['user.home'], ".android/manual-offline-m2")
def repos = new ArrayList()
reposDir.eachDir {repos.add(it) }
repos.sort()
allprojects {
buildscript {
repositories {
for (repo in repos) {
maven {
name = "injected_offline_${repo.name}"
url = repo.toURI().toURL()
}
}
}
}
repositories {
for (repo in repos) {
maven {
name = "injected_offline_${repo.name}"
url = repo.toURI().toURL()
}
}
}
}
EOF
Install SDK tools package
Link: https://developer.android.com/studio#offline
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
mkdir -p ~/.android/manual-offline-m2/
cd ~/.android/manual-offline-m2/ && unzip sdk-tools-linux-4333796.zip
Install Android SDK
Link: https://developer.android.com/studio/command-line/sdkmanager
cd ~/.android/manual-offline-m2/ && \
./tools/bin/sdkmanager "platform-tools" "platforms;android-28"
Build BLE_HID_EXAMPLE
git clone https://github.com/Aleksander-Drewnicki/BLE_HID_EXAMPLE
cd BLE_HID_EXAMPLE && ./gradlew build
Gradle proxy configuration
Link: https://stackoverflow.com/questions/5991194/gradle-proxy-configuration
./gradlew \
-Dhttp.proxyHost=192.168.1.39 -Dhttp.proxyPort=1080 \
-Dhttps.proxyHost=192.168.1.39 -Dhttps.proxyPort=1080 \
build
Fix “running out of JVM memory”
echo "org.gradle.jvmargs=-Xmx4096M" >> gradle.properties
Build go-tun2socks-mobile
git clone https://github.com/eycorsican/go-tun2socks-mobile
cd go-tun2socks-mobile/ && {
go get -d .
go get golang.org/x/mobile/cmd/gomobile
export PATH=~/go/bin:$PATH
gomobile init
export ANDROID_HOME=~/.android/manual-offline-m2
export ANDROID_NDK_HOME=~/.android/ndk/android-ndk-r21d
make android
}