/ad-away

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

Primary LanguageCGNU General Public License v3.0GPL-3.0

No longer in active development

AdAway is no longer in active development. If you like to take over the maintaining, simply fork it and implement fixes. I will only do basic maintenance like merging pull requests and releasing new versions.

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