Skip to content

Ch4t4r/Nebulo

Repository files navigation

Nebulo


About

Nebulo is a free, open-source, non-root and small sized DNS changer for Android utilizing dns-over-https and dns-over-tls to bring privacy and security to your phone. It is fast, contains no ads or tracking and offers a lot of flexibility.

Our mission

Our mission is to provide access to dns-over-tls and dns-over-https as a tool against censorship and tracking. Many countries block controversial or government-critical websites using DNS which can possibly be circumvented using either of those protocols. The second topic, tracking, is nearly as important as the topic of censorship. Many ISPs use their own DNS servers as a way of tracking their users. Using DoH/DoT puts an end to this by encrypting your dns queries.

How it works

Nebulo uses the VPN API of the Android system to create a dummy VPN which intercepts all packets for the dns servers of your device. This dummy VPN is not a real VPN and does not tunnel your packets - it only handles dns packets. As only one VPN can be activate at any given time you have to decice between using Nebulo or a real VPN.

What this is based on

Nebulo is a completely original piece of software. It doesn't use any other dependency under the hood for the dns capabilities. Check the dependencies to see what is used for everything build around DoH/DoT.

Incompatibilities, compatibilities and possible problems

  • As mentioned no other VPN can be active when Nebulo is running.
  • Nebulo works fine with non-VPN firewalls in place (such as AFWall+), but changes in firewall profiles could break the VPN, requiring a restart of Nebulo.
  • Other means of ad-blocking, like modifying the /etc/hosts file or the AdAway app go hand in hand with Nebulo as well.
    • The AdGuard app might cause Nebulo not to receive DNS queries

Core features

The app consists of a few core features:

  • Dns forwarding using dns-over-https and dns-over-tls
  • A customizable in-memory DNS cache
    • You can configure minimum caching time and default caching times
  • A list of servers with a lot of default entries
    • You can add your own servers as well
  • A DNS speed test
  • Query logging
  • DNS rules, where you can specify your own IP addresses for hosts
    • Rules can be imported from files and URLs (supports 4 different formats)
    • You can block hosts by using 0.0.0.0 and ::1 as targets
    • The DNS rules prevent CNAME cloaking
  • Highly customizable settings
    • Disable IPv4/IPv6
    • Allow captive portals
    • Allow search domains on the current network
    • ... And more

Help wanted

Requesting your support: the app is getting closer to a proper release but it's still missing an important aspect: translations. Translations are important to reach as broad of an audience as possible and for non-english speakers to be able to use the app to it's full extent. Head over to the translation guide to see how you can help!

Installation

The app is distributed over the play store, F-Droid and as .apk file.

Play store

Go to the play store, download the app and have fun.

F-Droid

  1. Add the repository on your F-Droid app by clicking this link.
    • Or add it yourself, fdroid.frostnerd.com/fdroid with fingerprint 74BB580F263EC89E15C207298DEC861B5069517550FE0F1D852F16FA611D2D26
    • You can use the QR-Code as well .
    • I recommend using Aurora Droid , it contains the repository by default
  2. Update your repositories (by pulling down to refresh)
  3. Search for Nebulo
  4. Download the app.
  5. Don't forget to check for updates sometimes.

Binary

The file is distributed as .apk file in two places:

  • In the telegram group
  • In the automated build system (CI) here in GitLab. Click here to download the latest signed build.
    • The latest signed build isn't always the current release, keep in mind that those are merely signed development builds.

Community

Want to be always up-to-date on the development of this app? Looking for a way to contact the developer?

Join our Telegram group! (Alternativly the channel , which contains only updates and nothing else)

Issues, feature requests and questions

Have an idea, question or encountered a bug? Feel free to create an issue right here in GitLab.

Developer contact

There are several ways for you to contact the developer:

E-Mail: [email protected]

Telegram: @Ch4t4r

Skype: daniel38452

Credits

A list of some extraordinary people who contributed to this project:

  • App icon and notification icon by RKBDI.
  • Turkish translation by Kemal Oktay Aktoğan
  • Russian translation by bruleto
  • Dutch translation by Bas Koedijk
  • Portuguese translation by Rafael W. Bohnenberger
  • Indonesian translation by Gloeyisk
  • Catalan translation by Daniel Alomar
  • Spanish translation by Victor Bayas


Want to see your name here? Feel free to contribute!

License

This work is licensed under the GNU GPLv3 License. Different license-agreements can be made with the developer, if needed.

Copyright (C) 2020 Daniel Wolf



Please be aware that I'm not going to tolerate exact copies of this app on the Play Store. This project took a lot of work, not only from me, but many alpha/beta testers and translators. Copying is - per the license - generally allowed, but uploading a nearly identical version to the Play Store would be impersonation as per Google policy.

Third-party content

This work contains third-party content, namely:

Cloning

Feel free to clone this software. However, there are a few things to notice:

  • This app uses some of my own libraries. Those are OSS as well, you can find the URLs in the build.gradle.
    • These libraries are distributed as pre-built binaries using an Nexus3 server. Public credentials are contained in the root build.gradle
    • Alternatively, replace the dependencies (implementation 'com.frostnerd.utilskt:....) with git sub-modules (implementation project(...)) after cloning the libraries.
  • Nebulo uses icons from Font Awesome covered under their free license. Nebulo gives attribution in the Credits section.