Skip to content

Commit

Permalink
docs: add to features
Browse files Browse the repository at this point in the history
  • Loading branch information
zaneschepke committed Jan 15, 2024
1 parent d1a9396 commit 53c51ff
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 27 deletions.
2 changes: 1 addition & 1 deletion Writerside/cfg/glossary.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE terms SYSTEM "https://resources.jetbrains.com/writerside/1.0/glossary.dtd">
<terms>
<term name="primary_tunnel">This is the designated default tunnel config denoted by a star in the app.</term>
<term name="primary_tunnel">This is the designated default tunnel config denoted by a star in the app. It is the config that will be used by the quick settings tile, static shortcuts, auto-tunneling, and Always-On VPN by default.</term>
<term name="wakelock">The ability to keep the CPU of the Android device running even after the phone has been put to sleep.</term>
</terms>
20 changes: 16 additions & 4 deletions Writerside/topics/FAQ.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# FAQ

This sections details commonly asked questions and the answers to those questions.
This section details commonly asked questions and the answers to those questions.

### Is %product% supported on AndroidTV?

Expand All @@ -10,7 +10,8 @@ for AndroidTV. This can result is a somewhat clunky user experience.
### How do I add a tunnel?

To add a tunnel, you need either a WireGuard server or a VPN Provider that allows you to export
tunnel configs for third party apps. This will be in the form of a `.conf` file or a QR code.
tunnel configs for third party apps.
This will commonly be in the form of a <path>.conf</path> file or a QR code.

### Does %product% work with Android Auto?

Expand All @@ -20,7 +21,18 @@ For more information on how to do this, see the [Split Tunneling](Features.md#sp
while still tunneling the app traffic for all of your other apps.


### Why are some feature not available for AndroidTV? {id="tv-features-faq"}
### Why are some features not available for AndroidTV? {id="tv-features-faq"}

Unfortunately, AndroidTV does not have all the same API and security features as Android mobile.
For this reason, some features are disabled for AndroidTV.
For this reason, some features are disabled for AndroidTV.

### Why does %product% require location permissions for auto-tunneling?

Android has deemed Wi-Fi SSIDs as precise location information.
In order for %product% to read the SSID from the system, it must have these permissions.

<note>
<p>
This permission is only required if you enable <em>Tunnel on untrusted wifi</em> in the auto-tunneling settings.
</p>
</note>
92 changes: 71 additions & 21 deletions Writerside/topics/Features.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,45 @@ There are multiple ways tunnel configs can be added to the app.

After clicking the floating action button on the main screen, the following options are available:

1. Upload a `.conf` file
2. Upload a zip containing `.conf` files (like an export from %product% or the official app)
1. Upload a <path>.conf</path> file
2. Upload a zip containing <path>.conf</path> files (like an export from %product% or the official app)
3. Scan a QR code <a href="FAQ.md#tv-features-faq"><emphasis>(Mobile only)</emphasis></a>
- This option will upload the tunnel with a randomly generated name.
4. Create one from scratch



## Auto-tunneling

Coming soon!
Auto-tunneling is the core feature of the application.
It allows users to automate under which network circumstances a tunnel will activate.

A core concept when using auto-tunneling is setting a <tooltip term="primary_tunnel">primary tunnel</tooltip>.

Setting a primary tunnel can be accomplished by doing a long-press on the desired tunnel config on the main screen
and clicking the <emphasis>star icon</emphasis>.

<note>
<p>
Setting a <tooltip term="primary_tunnel">primary tunnel</tooltip> is not strictly required
as the app will automatically select a default tunnel if one does not already exist
Additionally, <a anchor="always-on-feature">Always-On VPN</a> is disabled in this mode to prevent conflicts.
</p>
</note>

There are three auto-tunneling modes that can be used in combination or individually:

1. <control> Tunnel on mobile data </control>
- The app detects when the device has switched to using mobile data and turns on the tunnel.
- <emphasis>Common use case:</emphasis> Connecting to home server whenever leaving the house
2. <control> Tunnel on ethernet </control>.
- The app detects when a device has switched to an ethernet connection and turns on the tunnel.
- <emphasis>Common use case:</emphasis> AndroidTV devices (especially portable ones)
3. <control> Tunnel on untrusted wifi </control> <emphasis>(Location required)</emphasis>
- The app detects when the device has connected to a new Wi-Fi network.
If the network name (SSID) is not in the list of trusted network names, start the tunnel.
- <emphasis>Common use case:</emphasis> Disable the tunnel on my home (trusted) network,
but enable it when I connect to any public Wi-Fi network.

## Split tunneling {collapsible="true"} {id="split"}

Expand All @@ -33,41 +63,61 @@ A common use-case could be
that a user wants apps that only function in another country
to be tunneled to a VPN server in that country while all other apps use the normal network.

## Always-on VPN {id="always-on-feature"}
## Auto restart on boot

<a href="FAQ.md#tv-features-faq"><emphasis>(Mobile only)</emphasis></a>
Auto start on boot is automatically enabled when a user enables auto-tunneling.
This feature will automatically restart the auto-tunneling service on boot if the phone has been shutdown or rebooted.

Coming soon!
<note>
<p>
It can sometimes take up to a few minutes after boot to start the service.
</p>
</note>

## Exporting tunnel configs {id="export-feature"}
## Battery saver (beta)

<a href="FAQ.md#tv-features-faq"><emphasis>(Mobile only)</emphasis></a>
This feature shortens the wakelock timer for %product% to prevent it from draining the battery.

%product% offers the ability to export all of your tunnel configurations to a zip folder.
- Timer with battery saver: 10-minutes
- Timer without battery saver: 30-minutes

1. Navigate to the <emphasis>Settings</emphasis> screen.
2. Click `Export configs` near the bottom of the screen.
3. Complete the biometrics prompt.
4. All configs are now saved to the <emphasis>Downloads</emphasis> folder on your device in a zip folder called `wg-export_<timestamp>.zip`.

## Quick tile settings


## Auto restart on boot

Auto start on boot is automatically enabled when a user enables auto-tunneling.
This feature will automatically restart the auto-tunneling service on boot if the phone has been shutdown or rebooted.

## Always-on VPN {id="always-on-feature"}

Turning on the Always-On VPN setting [(mobile only)](FAQ.md#tv-features-faq) in %product% allows the Android OS
to control your <tooltip term="primary_tunnel">primary tunnel</tooltip>
(or an app selected tunnel if no primary is set) through the Android OS Always-On VPN feature.

Android will attempt to keep the tunnel always connected.

<note>
<p>
It can sometimes take up to a few minutes after boot to start the service.
Auto-tunneling is disabled in this mode as it would conflict with the Always-On VPN functionality.
</p>
</note>

## Battery saver (beta)
An added benefit to Always-On VPN is the ability to use the <emphasis>Block connections without VPN</emphasis> native Android feature for added security,
but this will prevent split tunneling from working properly.

This feature shortens the wakelock timer for %product% to prevent it from draining the battery.

- Timer with battery saver: 10-minutes
- Timber without battery saver: 30-minutes
## Exporting tunnel configs {id="export-feature"}

%product% offers the ability to export all of your tunnel configurations to a zip folder [(mobile only)](FAQ.md#tv-features-faq).

1. Navigate to the <emphasis>Settings</emphasis> screen.
2. Click `Export configs` near the bottom of the screen.
3. Complete the biometrics prompt.
4. All configs are now saved to the <emphasis>Downloads</emphasis> folder on your device in a zip folder called `wg-export_<timestamp>.zip`.

## Kernel Module Support

If you are on a rooted device, %product% also supports the use of WireGuard's native kernel implementation on Android [(mobile only)](FAQ.md#tv-features-faq).
This has some performance benefits, but it has been known to be less reliable than the userspace implementation.

<seealso>
<category ref="wrs">
Expand Down
2 changes: 1 addition & 1 deletion Writerside/topics/Integrations.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Integrations

This sections details the integration options available for %product%.
This section details the integration options available for %product%.

## App Shortcuts

Expand Down

0 comments on commit 53c51ff

Please sign in to comment.