Skip to content

HOWTO Compile AFWall

taro-k edited this page Dec 6, 2015 · 36 revisions

⚠️ If you don't know anything about compiling Android apps (apk's), you should better read this article here first. ⚠️

Index

Software

Android Studio:

Eclipse (old):

Advanced users can build the latest AFWall+.APK from the Command Line or see the next steps.

IDE Requirements

AFWall+ can be built using any IDE that supports the Gradle build tool, used by projects such as Android Studio or Intellij IDEA plus many others. (Gradle is the new equivalent of the old "Ant" build tool.)

General procedure using Android Studio

  • Download and install your favorite GitHub sync-tool like SmartGit or GitHub for Win/Mac.
  • Download and install the JAVA SE Development Kit 8 (JDK8) from here.
  • Install the latest Android Studio from here.
  • When you start Android Studio, you'll see "Welcome to Android Studio" with several options. Here you choose to Open Project and then navigate to your GitHub synchronization directory where you have added AFWall+, from your GitHub sync-tool.

The project will open immediately, but now you want to close it, so that you can return to the Welcome screen, this time you choose Configure >> SDK Manager. Here you select all APIs related to API 14 (or higher), which is our lowest supported API. For more details follow the setup instructions here. Now click on the sideways Gradle tab, on the right side of the IDE. This will open a new window, once in it, double click on Debug (assembleDebug). Check for build errors in the lower screen log window. If it compiles without errors, you can now build your own APK by clicking on the menu items: Build >> Generate Signed APK. This will ask you for 3 new passwords to be used in your "KeyStore" (1 master, 1 file, 1 APK alias). You may also add your credentials in signing.properties to enable automatic signing.

Example:

WARNING: NEVER UPLOAD THIS FILE TO GITHUB! .gitignore will reject accidental uploads.

  • KEYSTORE_FILE=path\to\mykeystore.keystore
  • KEYSTORE_PASSWORD=*************************
  • KEY_ALIAS=*********************************
  • KEY_PASSWORD=******************************

If all of the above succeeded, push the AFWall+ .apk to your device and run.

After repository refactoring and cleanup

Apparently, the first time after you have added our repo using the (Windows) GitHub app, or deleted a previous version from Android Studio, you need to import it into Android Studio by:

  • Selecting "Import Non-Android Studio Project"

Selecting "Open an existing Android Studio Project" doesn't work, as it doesn't seem to setup the .gradle and .idea files etc.

Build via Command Line

Install the latest API and related packages in Android SDK Manager:

$ android

Clone the git repository and build by using gradlew with Internet connection:

$ git clone git://github.com/ukanth/afwall.git 
$ cd afwall
$ ./gradlew clean assembleDebug

After successful build, afwall-debug.apk will be found in aFWall/build/outputs/apk/.

Compiling native binaries

On the host side you'll need to install (for compiling e.g. iptables):

  • Android Studio 1.3.1 or higher (If you used the above steps you're mostly done).
  • Ensure Makefile are on the correct place.
  • Ensure you use allDebug or allRelease (since Android Studio may have problems with other flags).
  • Edit and compile the binaries as per needs, the debugger shows the important stuff within the output.txt file.

After Repository Refactoring

After the first time you have added our AFWall+ repo using the GitHub app, or deleted a previous version from Android Studio, you may need to import it into Android Studio again/by:

Selecting "Import Non-Android Studio Project"

Selecting "Open an existing Android Studio Project" doesn't work, as it doesn't seem to setup the .gradle and .idea files etc. This is due a bug within Android Studio.

Useful links

_ Final version 08.24.2015_