AdAway is an open source ad blocker for Android using the hosts file.

Clone this repo:
  1. d7b4683 Merge branch 'master' of https://github.com/dschuermann/ad-away.git by CyanMod-X · 8 years ago master
  2. 75ccdf0 Update from transifex by CyanMod-X · 8 years ago
  3. 88bbd40 Merge pull request #557 from strel/master by Dominik Schürmann · 8 years ago
  4. ec965c2 Update proposal on this Q&A by strel · 8 years ago
  5. c38de77 Update from transifex by Dominik Schürmann · 8 years ago v2.9.2

AdAway

AdAway is an open source ad blocker for Android using the hosts file.

For more information visit http://adaway.org

Build with Gradle

Build Executables

  1. Have NDK directory in your PATH (http://developer.android.com/tools/sdk/ndk/index.html)
  2. Change to "AdAway" directory with cd AdAway
  3. Execute ndk-build to compile native binaries.

Build APK

  1. Have Android SDK "tools", "platform-tools", and "build-tools" directories in your PATH (http://developer.android.com/sdk/index.html)
  2. Open the Android SDK Manager (shell command: android). Expand the Extras directory and install "Android Support Repository"
  3. Export ANDROID_HOME pointing to your Android SDK
  4. Execute ./gradlew renameExecutables (IMPORTANT unusual step!)
  5. Execute ./gradlew build

Contribute

Fork AdAway and do a Pull Request. I will merge your changes back into the main project.

Development

I am using the newest Android Studio for development. Development with Eclipse is currently not possible because I am using the new project structure.

  1. Clone the project from github
  2. From Android Studio: File -> Import Project -> Select the cloned top folder
  3. Import project from external model -> choose Gradle

Translations

Translations are hosted on Transifex, which is configured by ".tx/config".

  1. To pull newest translations install transifex client (e.g. apt-get install transifex-client)
  2. Config Transifex client with "~/.transifexrc"
  3. Go into root folder of git repo
  4. execute tx pull (tx pull -a to get all languages)

see http://help.transifex.net/features/client/index.html#user-client

Coding Style

Code

  • Indentation: 4 spaces, no tabs
  • Maximum line width for code and comments: 100
  • Opening braces don't go on their own line
  • Field names: Non-public, non-static fields start with m.
  • Acronyms are words: Treat acronyms as words in names, yielding !XmlHttpRequest, getUrl(), etc.

See http://source.android.com/source/code-style.html

XML

  • XML Maximum line width 999
  • XML: Split multiple attributes each on a new line (Eclipse: Properties -> XML -> XML Files -> Editor)
  • XML: Indent using spaces with Indention size 4 (Eclipse: Properties -> XML -> XML Files -> Editor)

See http://www.androidpolice.com/2009/11/04/auto-formatting-android-xml-files-with-eclipse/

AdAway/jni

Forked from the following sources and slightly modified to compile!

Changes

"dnsmasq/source/src/Android.mk" add following line:

LOCAL_LDLIBS := -llog

"tcpdump/Android.mk":

LOCAL_C_INCLUDES += \
	$(LOCAL_PATH)/missing\
	$(LOCAL_PATH)/../libpcap

# disabled crypo libs, not needed in AdAway
#	$(LOCAL_PATH)/../openssl/include\

#LOCAL_SHARED_LIBRARIES += libssl libcrypto

"tcpdump/config.h":

/* Whether or not to include the possibly-buggy SMB printer */
/* #undef TCPDUMP_DO_SMB */

/* Define to 1 if you have the <openssl/evp.h> header file. */
/* #undef HAVE_OPENSSL_EVP_H */

/* Define to 1 if you have the `crypto' library (-lcrypto). */
/* #undef HAVE_LIBCRYPTO */

Licenses

AdAway is licensed under the GPLv3+.
The file LICENSE includes the full license text.

Details

AdAway is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

AdAway is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with AdAway. If not, see http://www.gnu.org/licenses/.

Libraries

Images

  • status_enabled.svg, status_disabled.svg, status_update.svg
    Dropbox Emblems Tango by Charles A.
    http://forums.dropbox.com/topic.php?id=7818&replies=19
    Creative Commons Attribution 3.0 Unported License

  • status_fail.svg
    Faenza Icons
    GPLv3

  • icon.svg, banner.svg
    AdAway by Dominik Schürmann
    New version by Alin Ţoţea-Radu
    GPLv3

  • Menu Icons
    Original Android Icons