dEFIX - oops

moving under braking, weaving on the straight

Setup Offline Build for Android

2021-02-23 1 min read Android dEFIX

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”

Link: https://stackoverflow.com/questions/59624003/daemon-is-stopping-immediately-jvm-garbage-collector-thrashing-and-after-running

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
}