Step A: Update the system and install all necessary packages
sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get upgrade -y; sudo apt-get install git openjdk-8-jdk dh-autoreconf ant libncurses5:i386 libstdc++6:i386 zlib1g:i386 -y; cd ~/; mkdir Android; cd Android;
Step B: Download the Android SDK and install all required packages
The following download link we got it from this page https://developer.android.com/studio/
wget https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz; tar -xf android-sdk_r24.4.1-linux.tgz; cd android-sdk-linux/tools; #To list all available packages, including the obsolete extra-android-support #./android list sdk --all –extended; ./android update sdk --no-ui --all --filter extra-android-support,tools,platform-tools,build-tools-19.1.0,android-19;
You will get a prompt for a license agreement, you need to type Y
to proceed
November 20, 2015 Do you accept the license 'android-sdk-license-c81a61d9' [y/n]: y
cd ../..; export ANDROID_HOME=`pwd`/android-sdk-linux;
Step C: Once the installation is complete, we need to install the Android NDK.
The following link we got it from https://developer.android.com/ndk/downloads/
wget https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip; unzip -q android-ndk-r13b-linux-x86_64.zip; export NDK_DIR=`pwd`/android-ndk-r13b; #If we do not update the PATH we will get the following error: ../libtool: line 1719: arm-linux-androideabi-ranlib: command not found PATH=$PATH:`pwd`/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin; mkdir Projects; cd Projects;
Step D: Afterwards, we can download SnoopSnitch and all of the git submodules of it using the following command.
git clone --recursive https://opensource.srlabs.de/git/snoopsnitch.git;
Step E: Then we need to compile two separate parts of the project.
We will start by compiling contrib/
projects, that are the supplementary projects needed for SnoopSnitch
to get data.
cd snoopsnitch/contrib/; ./compile.sh -t android -u; cd ..;
Step F: Finally, we can proceed to compile the android project of SnoopSnitch.
cd ./SnoopSnitch;
We need to update Application.mk
and add APP_ABI := armeabi
to it.
We do this to make sure that we compile diag-helper.c
only for armeabi
as the rest of the packages will be available only on that architecture.
If we do not do this and we have a processor that supports armeabi-v7a
(or different), then it will only install diag-helper.so
and it will ignore the rest. Which will of course cause the application to fail.
echo "APP_ABI := armeabi" >> jni/Application.mk; ant debug; ~/Android/android-sdk-linux/platform-tools/adb start-server
Once the compilation is complete, we can upload our apk to a device using the following commands:
#First we make sure that the adb server is running $ANDROID_HOME/platform-tools/adb start-server; #Then we check that our device is visible to the adb $ANDROID_HOME/platform-tools/adb devices; #Finally, we install the application to the device. $ANDROID_HOME/platform-tools/adb install bin/SnoopSnitch-debug.apk;
This guide was tested on freshly installed Ubuntu 16.10
64bit.