Unverified Commit ce887b7e authored by ignoramous's avatar ignoramous Committed by GitHub
Browse files

Re-word README (#2)

Redo the sentences a bit in the readme.md.

Move third party notices from readme.md
to notice.md.
parent 34c898c5
Nebulo uses content from these third-parties:
1. [sentry-java](https://github.com/getsentry/sentry-java) for crash-reporting.
- License: [BSD 3-Clause revised](https://opensource.org/licenses/BSD-3-Clause).
2. [Material Design Icons](https://material.io/tools/icons/).
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
- The notification and launcher icons are remixes of the cloud icon.
3. [Font Awesome icons](https://fontawesome.com/).
- License: Font Awesome Pro License, held by Daniel Wolf.
- All icons used in Nebulo are also available under the [free license](https://fontawesome.com/license/free). Attribution is required if you don't hold a pro license (Nebulo does so in the credits).
4. [Weblate](https://weblate.org) for managing translations.
- License: GPLv3.
5. [FABProgressCircle](https://github.com/JorgeCastilloPrz/FABProgressCircle) for showing a loading indicator around floating action buttons.
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
6. [LeakCanary](https://github.com/square/leakcanary) for finding memory leaks.
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
7. [LeakSentry](https://github.com/square/leakcanary/tree/master/leakcanary-leaksentry) for finding memory leaks.
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
8. [Gson](https://github.com/google/gson).
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
9. [OkHttp](https://github.com/square/okhttp).
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
10. [AppIntro](https://github.com/AppIntro/AppIntro).
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
11. [MiniDNS](https://github.com/MiniDNS/minidns).
- License: Free choice of [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0), [WTFPL](https://github.com/MiniDNS/minidns/blob/master/LICENCE_WTFPL), and [GPL2.1](https://github.com/MiniDNS/minidns/blob/master/LICENCE_LGPL2.1).
<div align="center"> <div align="center">
<a href="" rel="noopener"> <a href="https://play.google.com/store/apps/details?id=com.frostnerd.smokescreen" rel="nofollow noopener noreferrer" target="_blank">
<img width=200px height=200px src="app/src/main/res/mipmap-xxhdpi/ic_launcher.png" alt="Project logo"></a> <img style="width:200px; height:200px" src="app/src/main/res/mipmap-xxhdpi/ic_launcher.png" alt="Project logo"></a>
</div> </div>
<div align=center> <div align="center">
<h3 align="center">Nebulo</h3> <h3 align="center">Nebulo</h3>
</div> </div>
<div align="center"> <div align="center">
[![Apk size](https://img.shields.io/badge/Apk%20file%20size-4.7%20MB-blue)]() [![Apk size](https://img.shields.io/badge/Apk%20file%20size-4.7%20MB-blue)](#installation)
[![License](https://img.shields.io/badge/license-GPLv3-blue.svg)](/LICENSE) [![License](https://img.shields.io/badge/license-GPLv3-blue.svg)](/LICENSE)
<a href="https://weblate.frostnerd.com/engage/nebulo/?utm_source=widget"> <a href="https://weblate.frostnerd.com/engage/nebulo/?utm_source=widget">
<img src="https://weblate.frostnerd.com/widgets/nebulo/-/svg-badge.svg" alt="Übersetzungsstatus" /> <img src="https://weblate.frostnerd.com/widgets/nebulo/-/svg-badge.svg" alt="Übersetzungsstatus" />
...@@ -19,94 +19,82 @@ ...@@ -19,94 +19,82 @@
--- ---
# About # 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. Nebulo is a free, open-source, no-root, light-weight dns-over-https, dns-over-tls, and dns-over-http-over-quic client for Android with emphasis on privacy and security. Nebulo is fast, highly-customizable, ad-free, efficient on the battery, contains zero analytics / tracking. Goto [installation](#installation) and set it up on your Android device.
It is fast, contains no ads or tracking and offers a lot of flexibility.
Look below for [installation instructions](#installation).
# My mission # My mission
My 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. My 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.
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 the vulnerable DNS queries.
# How it works # 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. 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.
## Non-VPN mode ## Non-VPN mode
Look in the [FAQ](FAQ.md). Look for it in the [FAQ](FAQ.md).
## What this is based on ## 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](https://git.frostnerd.com/PublicAndroidApps/smokescreen/blob/master/app/build.gradle#L100) to see what is used for everything build around DoH/DoT. 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](https://git.frostnerd.com/PublicAndroidApps/smokescreen/blob/master/app/build.gradle#L100) to see what is used for everything build around DoH/DoT.
## Incompatibilities, compatibilities and possible problems ## Incompatibilities, compatibilities, and possible problems
- As mentioned no other VPN can be active when Nebulo is running (at least when not running in Non-VPN mode mentioned above) - No other VPN can be active when Nebulo is running (at least when not running in Non-VPN mode mentioned above).
- Nebulo works fine with non-VPN firewalls in place (such as AFWall+), but changes in firewall profiles [could break the VPN](https://git.frostnerd.com/PublicAndroidApps/smokescreen/issues/84), requiring a restart of Nebulo. - Nebulo works fine with non-VPN firewalls in place (such as AFWall+), but changes in firewall profiles [could break the VPN](https://git.frostnerd.com/PublicAndroidApps/smokescreen/issues/84), 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. - Other means of ad-blocking, like modifying the `/etc/hosts` file manually or using the AdAway app works alongside Nebulo just fine; though, the AdGuard app doesn't (that is, Nebulo does not receive any DNS queries when AdGuard's running).
- The AdGuard app might cause Nebulo not to receive DNS queries
## Core features ## Core features
The app consists of a few core features: * Encrypted DNS using dns-over-https, dns-over-tls, and dns-over-http-over-quic protocols.
* Dns forwarding using dns-over-https and dns-over-tls * Customizable in-memory DNS cache with configurable cache-expiry.
* A customizable in-memory DNS cache * Preset list of privacy-respecting DNS servers.
* You can configure minimum caching time and default caching times * Add any DNS server.
* A list of servers with a lot of default entries * DNS speed test.
* You can add your own servers as well * DNS query logging.
* A DNS speed test * DNS blocklists.
* Query logging * Blocklist rules can be imported from remote URLs or on-device files (supports 4 different formats).
* DNS rules, where you can specify your own IP addresses for hosts * Blocks domains with _unspecified IPs_, `0.0.0.0` and `::0000`.
* Rules can be imported from files and URLs (supports 4 different formats) * Automagically protects from [CNAME cloaking](https://webkit.org/blog/11338/cname-cloaking-and-bounce-tracking-defense/).
* You can block hosts by using 0.0.0.0 and ::1 as targets (If you check the box "Block this host" those targets are automatically used. You don't have to do anything else.) * Advanced settings:
* The DNS rules prevent CNAME cloaking * Disable IPv4 / IPv6.
* Highly customizable settings * Allow captive portals.
* Disable IPv4/IPv6 * Allow search domains on the current network.
* Allow captive portals * ... and more.
* Allow search domains on the current network
* ... And more
# FAQ # FAQ
For a growing collection of frequenty asked questions (FAQ), take a look [here](FAQ.md). For a growing collection of frequenty asked questions, [take a look here](FAQ.md).
# Help wanted # Help wanted
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. 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 its full extent.
Head over to the [translation guide](TRANSLATING.md) to see how you can help! [Head over to the translation guide](TRANSLATING.md) to see how you can help!
# Installation # Installation
The app is distributed over the play store, a custom F-Droid repo and as an .apk file. The app is distributed over Google Play Store, a custom F-Droid repo, and as a standalone `.apk` file.
## Play store ## Play Store
Go to the [play store](https://play.google.com/store/apps/details?id=com.frostnerd.smokescreen) to download the app. [Download the latest version](https://play.google.com/store/apps/details?id=com.frostnerd.smokescreen) from Google Play Store.
## F-Droid ## F-Droid
1. Add the repository on your F-Droid app by clicking [this link](https://fdroid.frostnerd.com/fdroid/repo?fingerprint=74BB580F263EC89E15C207298DEC861B5069517550FE0F1D852F16FA611D2D26). Search for Nebulo and download it from [the Aurora Store](https://gitlab.com/AuroraOSS/auroradroid), which is a F-Droid mirror; or follow these steps if you're using F-Droid:
- Or add it yourself, fdroid.frostnerd.com/fdroid with fingerprint 74BB580F263EC89E15C207298DEC861B5069517550FE0F1D852F16FA611D2D26
- You can use the [QR-Code as well](material/fdroid_qr.jpg) .
- I recommend using [Aurora Droid](https://gitlab.com/AuroraOSS/auroradroid) , it contains the repository by default
2. (Optional, for older versions of Nebulo) Add the F-Droid archive by clicking [this link](https://fdroidarchive.frostnerd.com/?fingerprint=74BB580F263EC89E15C207298DEC861B5069517550FE0F1D852F16FA611D2D26).
- Or add it yourself, fdroidarchive.frostnerd.com with fingerprint 74BB580F263EC89E15C207298DEC861B5069517550FE0F1D852F16FA611D2D26
3. Update your repositories (by pulling down to refresh)
4. Search for Nebulo
5. Download the app.
6. Don't forget to check for updates sometimes.
1. [Click to add Nebulo](https://fdroid.frostnerd.com/fdroid/repo?fingerprint=74BB580F263EC89E15C207298DEC861B5069517550FE0F1D852F16FA611D2D26) to your F-Droid.
- Or, add it manually, `fdroid.frostnerd.com/fdroid` with fingerprint `74BB580F263EC89E15C207298DEC861B5069517550FE0F1D852F16FA611D2D26`.
- Or, add it by [scanning this QR-Code](material/fdroid_qr.jpg).
2. (Optional) For older versions of Nebulo, [click to add this repositorty instead](https://fdroidarchive.frostnerd.com/?fingerprint=74BB580F263EC89E15C207298DEC861B5069517550FE0F1D852F16FA611D2D26).
- Or, add it manually, `fdroidarchive.frostnerd.com` with fingerprint `74BB580F263EC89E15C207298DEC861B5069517550FE0F1D852F16FA611D2D26`.
3. Update your repositories (by pulling down to refresh F-Droid).
4. Search for Nebulo and download to install the app.
## Binary ## Binary
The file is distributed as .apk file in two places: - Grab the _latest_ `.apk` file from [the Nebulo telegram group](https://nebulo.app/community).
- In the [telegram group](https://nebulo.app/community) - Grab a _signed_ build [on GitLab](https://git.frostnerd.com/PublicAndroidApps/smokescreen/-/jobs/artifacts/master/raw/app/build/outputs/apk/normal/release/app-normal-release.apk?job=build_release).
- In the automated build system (CI) here in GitLab. [Click here](https://git.frostnerd.com/PublicAndroidApps/smokescreen/-/jobs/artifacts/master/raw/app/build/outputs/apk/normal/release/app-normal-release.apk?job=build_release) to download the latest signed build. - The _signed_ builds aren't always the _latest_ or _stable_, but are merely signed _development_ builds.
- The latest signed build isn't always the current release, keep in mind that those are merely signed development builds.
# Community # 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](https://nebulo.app/community)! [Join the Nebulo community](https://nebulo.app/community) to ask for help or connect with the developer. Head over to [the announcements channel](https://nebulo.app/updateChannel) to get updates on upcoming releases and features.<br>
(Alternatively [the channel](https://nebulo.app/updateChannel) , which contains only updates and nothing else)<br> Or, participate in [the XDA-Developers discussion thread](https://forum.xda-developers.com/t/app-5-0-nebulo-dns-changer-for-doh-dot-against-censorship-open-source-no-root.4156645/).
I also have a XDA-thread [here](https://forum.xda-developers.com/t/app-5-0-nebulo-dns-changer-for-doh-dot-against-censorship-open-source-no-root.4156645/). # Issues, and feature requests
Have an feature idea or stumbled upon bugs? Feel free to create issues [on GitLab](https://git.frostnerd.com/PublicAndroidApps/smokescreen/issues) or [on GitHub](https://github.com/Ch4t4r/Nebulo/issues).
# Issues, feature requests and questions
Have an idea, question or encountered a bug? Feel free to create an issue [right here in GitLab](https://git.frostnerd.com/PublicAndroidApps/smokescreen/issues).
Alternatively use the issue tracker in the mirror over on GitHub: https://github.com/Ch4t4r/Nebulo
# Developer contact # Developer contact
There are several ways for you to contact the developer:
**E-Mail**: [daniel.wolf@frostnerd.com](mailto:daniel.wolf@frostnerd.com) **E-Mail**: [daniel.wolf@frostnerd.com](mailto:daniel.wolf@frostnerd.com)
...@@ -125,51 +113,20 @@ A list of some extraordinary people who contributed to this project: ...@@ -125,51 +113,20 @@ A list of some extraordinary people who contributed to this project:
- Catalan translation by Daniel Alomar - Catalan translation by Daniel Alomar
- Spanish translation by Victor Bayas - Spanish translation by Victor Bayas
<br/> <br/>
<br/>
**Want to see your name here? Feel free to contribute!** **Want to see your name here? Feel free to contribute!**
# License # License
This work is licensed under the GNU GPLv3 License. Different license-agreements can be made with the developer for parts of the app, if needed. This work is licensed under the GNU GPLv3 License. Different license-agreements can be made with the developer for parts of the app, if needed.
Copyright (C) 2021 Daniel Wolf
Copyright (C) 2021 Daniel Wolf
<br>
<br> <br>
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. 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:
- [sentry-java](https://github.com/getsentry/sentry-java) for crash-reporting
- License: [BSD 3-Clause revised ](https://opensource.org/licenses/BSD-3-Clause)
- [Material Design Icons](https://material.io/tools/icons/)
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
- The notification and launcher icons are remixes of the cloud icon
- [Font Awesome icons](https://fontawesome.com/)
- License: Font Awesome Pro License, held by Daniel Wolf
- All icons used in Nebulo are also available under the [free license](https://fontawesome.com/license/free). Attribution is required if you don't hold a pro license (Nebulo does so in the credits)
- [Weblate](https://weblate.org) for managing translations
- License: GPLv3
- [FABProgressCircle](https://github.com/JorgeCastilloPrz/FABProgressCircle) for showing a loading indicator around floating action buttons
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
- [LeakCanary](https://github.com/square/leakcanary) for finding memory leaks
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
- [LeakSentry](https://github.com/square/leakcanary/tree/master/leakcanary-leaksentry) for finding memory leaks
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
- [Gson](https://github.com/google/gson)
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
- [OkHttp](https://github.com/square/okhttp)
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
- [AppIntro](https://github.com/AppIntro/AppIntro)
- License: [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
- [MiniDNS](https://github.com/MiniDNS/minidns)
- License: Free choice of [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0), [WTFPL](https://github.com/MiniDNS/minidns/blob/master/LICENCE_WTFPL) and [GPL2.1](https://github.com/MiniDNS/minidns/blob/master/LICENCE_LGPL2.1)
# Cloning # Cloning
Feel free to clone this software. However, there are a few things to notice: Feel free to clone this repository. However, there are a few things to consider:
- This app uses some of my own libraries. Those are OSS as well, you can find the URLs in the `build.gradle`. - Nebulo uses some of my own libraries. Those are FOSS 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` - 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. - 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. - Nebulo uses icons from Font Awesome covered under their free license with attribution.
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment