Skip to content
Features

Features

Whitelisting and blacklisting

White list: selected applications will route traffic through ByeByeDPI, while all others will bypass it. Black list : selected applications will NOT route traffic through ByeByeDPI, while all others will.

Tip

Why are these lists important? Some apps (like Telegram) may not function properly or may not work at all when DPI bypass is applied. Additionally, the less traffic that passes through ByeByeDPI, the less battery power will be consumed. On some TVs or set-top boxes, internet access may not work at all without whitelisting.

Command line editor

The Command Line Editor section contains a list of Command Line Arguments (strategies) that have been applied previously.

Warning

Be careful: the list length is limited. If the list overflows, the oldest strategies will be removed.

Clicking on a strategy will open a menu with the following options:

  • Apply action: applies the command (sets it as the current Command Line Argument).

  • Pin action: pins the strategy to the top of the list.

  • Rename action: allows you to rename the strategy.

  • Copy action: copies the strategy to the clipboard.

  • Delete action: removes the strategy from the list (history).

Display all commands in the test as clickable

Tip

What is this setting useful for? If you don’t want to wait for the selection to finish because the test has already shown high (50% or more) percentages for several strategies, or if you’re experiencing a selection failure but some strategies in the test show high (50% or more) percentages, this setting can help.

This option can be found in the Proxy Test (Beta) settings.

Go to “Proxy Test (Beta)”1

  • Open Proxy Test Settings (gear icon in the top-right).

  • Activate the toggle Display all commands in the test as clickable

Now, even if the Proxy Test is interrupted, the list of strategies will be displayed as clickable.

Clicking on a strategy will open a menu with these options:

  • Apply action: applies the command (sets it as the current Command Line Argument).

  • Copy action: copies the strategy to the clipboard.

Your list of commands (strategies)

Important

You should use your custom list of strategies only if the auto-selection results in low percentages, and you see no strategies with the highest percentages hitting the ceiling (for more on this, see here).

If you’re unsatisfied with the results of the auto-selection and have found commands (strategies) elsewhere, but checking each one manually is tedious, you can follow these steps:

  • Go to “Proxy Test (Beta)”1
  • Open Proxy Test Settings (gear icon in the top-right).

  • Activate the switch Use custom command lists

  • Tap on Command lists

  • A window will open

  • In this window you should enter your list of commands (strategies)

Important

Each new strategy must be on a new line. Commands (strategies) cannot be separated by commas, periods, or any other symbols. They should only be separated by new lines.

  • After entering your strategies, press OK.

  • Return to Proxy Test (Beta) and click on the ‘Start Testing’ button.

  • After that, it will start checking the strategies you have inserted into the list

  • Wait for the selection to complete, then proceed with the standard setup. If there is a crash, the solution is here.

Exporting and importing settings

To export or import settings, go to the main settings in ByeByeDPI (gear icon in the top-right):

  • Click on the three dots in the top-right corner.

Warning

You cannot export settings from version 1.4.1 or older and import them into version 1.4.2 or newer.

  • Select Export or Import, depending on your needs (save settings or load settings). Settings are exported in json format. When importing, you will need to specify the file.

Methods of launching

Classic launch

The classic way to launch the application is by pressing the Connect button.

Tip

Some may find this method inconvenient, so there are other options available.

Launching through the control centre

  • Open your Control Centre and find Edit (or similar).

  • You will see inactive elements. Find ByeByeDPI among them, click, and drag it to the main elements

  • Don’t forget to save your changes.

  • You can now launch ByeByeDPI directly from the Control Centre.

Context menu

If you press the ByeByeDPI icon, a context menu will appear, allowing you to quickly toggle the application on and off.

Widget

By default, the application does not include widget functionality. However, it’s possible to create a widget:

  • Some launchers allow you to create widgets from quick menu items.

  • If your launcher doesn’t support this, you can use the Shortcut Maker (or similar) app.

Important

Use ToggleActivity for the widget.

VPN and Proxy modes

Caution

Proxy mode can only be used if you are connecting through a proxy client.

Tip

Why use Proxy mode? Proxy mode is useful if you want to run other applications in VPN mode simultaneously (e.g., AdGuard, etc.) or if you want to use a proxy client (e.g., ZeroOmega extension for point-proxying sites in the browser).

In VPN mode, traffic is forced through ByeByeDPI. In Proxy mode, a local SOCKS proxy is created.

The local proxy is also created in VPN mode, and you can connect to it using a proxy client when ByeByeDPI is in whitelist mode.

The proxy is raised in any mode, but in VPN mode the client of this proxy is ByeByeDPI.

Schematic representation of VPN-mode operation (HevSocks5Tunnel and ByeByeDPI direct traffic to the Internet):

In Proxy mode, the user needs to connect the proxy client itself to a proxy to access the Internet:

HTTP-proxy mode

This mode will proxy HTTPS or any TCP traffic other than HTTP.

By default, ByeByeDPI runs a local SOCKS proxy. Some proxy clients cannot work with this protocol. If needed, you can activate HTTP-proxy mode by enabling the HTTP proxy switch.

Note

Another way to activate this mode is by using the -G or --http-connect arguments (these are interchangeable).

Example strategy: --http-connect -d1 -s0+s -d3+s -s6+s -d9+s -s12+s -d15+s -s20+s -d25+s -s30+s -d35+s -At,r,s -s1 -o1+s -s-1

Split routing for sites (domains)

Tip

Why use split routing? DPI traversal can disrupt sites that function normally without it. For example: mfa.gov.tr.

Native method

To make ByeByeDPI process only specific domains, add the --hosts (-H) argument to your strategy and list the domains you want:

# From ByeDPI documentation

-H, --hosts <file|:string>
    Limit the scope of parameters to a list of domains
    Domains must be separated by a new line or a space

‘Whitelist’ for domains

If you specify a host list before finalizing the group with (-A), the strategy for that group will only interact with domains in the list.

Example strategy:

-H:"roblox.com discord.com discord.gg" -o1+s -d3+s -a2

Note

The brackets are necessary due to the peculiarities of the parsing mechanism.

Tip

It is not necessary to use whitelisting in this mode.

‘Blacklist’ for domains

In some cases, you may need to restrict ByeByeDPI from processing traffic for specific domains, such as mfa.gov.tr and geliyoo.com. To prevent ByeByeDPI from processing these domains, add them to a separate group at the beginning of the strategy with -H:"mfa.gov.tr geliyoo.com" -An. In simple words, this part means: if the domain is mfa.gov.tr or geliyoo.com - do nothing. It’s important not to forget -A with the right parameter after the list.

Example strategy:

-H:"mfa.gov.tr geliyoo.com" -An -o1+s -d3+s -a2

Tip

In the strategy, you can specify the path to the text file containing the domains. To do this, you need to give ByeByeDPI permission to access the files. The contents of the fake packages can be specified in the same way.

Example strategy:

-Ku -a10 -An -Kt,h -H /storage/emulated/0/Documents/domain.txt -s1 -q1 -Art -f-1 --md5sig -r1+s -An

Browser extension

An alternative method for point-to-point routing is using a browser proxy extension. Here’s an example using the Firefox browser with the ZeroOmega--Proxy SwitchyOmega V3 extension installed, but you can use any similar extension and browser with extension support.

  • First, activate proxy mode in ByeByeDPI or remove the browser from the whitelist in which you will install the extension.

  • Install the extension and be sure to grant it permission to work in private windows (this is necessary for the proxy to function properly). Click the Add button.

  • Then, open the list of extensions and click on ZeroOmega.

  • Navigate to the options tab.

  • In the Proxy tab, configure the connection settings: protocol (ByeByeDPI’s default is SOCKS5), the address and port of the proxy (which you can find in ByeByeDPI settings). For example:

Protocol: SOCKS5
Server: 127.0.0.1
Port: 1080
  • After setting up the connection, don’t forget to apply the changes by clicking Apply changes.

  • Next, go to the Auto Switch tab and add Switch rules. For example, I added:

Condition Type: Host Wildcard
Condition Details: *.discord.com
Profile: proxy
  • Remember to save the changes by clicking Apply changes.

  • Try accessing the desired resource. It may not open immediately. Change ZeroOmega’s mode to auto switch mode.

  • Refresh the page to load the resource. For instance, if you open a video, it may not start playing immediately. In this case, go to the extension settings.

  • In auto switch mode, the extension will notify you if any domains cannot be reached.

  • Open the failed resources tab, change their profile to proxy, and add them.

  •  After refreshing the page, everything should work.

  • In the settings, it now looks something like this:

Internet distribution with ByeByeDPI (local proxy)

Suppose you have an iPhone (or another device on which you can install a proxy client) and an Android 6.0+ phone (or another device running ByeByeDPI).

ByeByeDPI is installed on the Android device, and a working strategy is selected. On the iPhone (or other device), install a proxy client that supports SOCKS5 (for example, Happ is suitable for both iOS and Android).

To share access to ByeByeDPI, both devices (you can connect more than one device, but for simplicity, let’s assume it’s just one device) must be on the same local network. You can either connect both devices to the same access point or share your phone’s access point. The main thing is that both devices are on the same local network.

Next, in the ByeByeDPI settings, set the address and port to 0.0.0.0 and 1080.

Caution

If you want Roblox (and other apps) to continue working on the device running ByeByeDPI, do not activate Proxy mode. Otherwise, you will need to install a proxy client on the device with ByeByeDPI as well. To understand why this happens and why you can still connect from another device even if ByeByeDPI is in VPN mode, read here.

Launch ByeByeDPI.

Afterward, determine the IP address of the device running ByeByeDPI in the local network. You can use the Android Network Tools application. When you enter this application, the ip address will be written:

The ip of the device can also be found in the network settings or by using the Ning app.

Tip

For those in the know: If you will be connecting often, set a static IP for your phone.

Then, open the proxy client on the iPhone (or other device). This example uses Happ.

Warning

There’s no separate app tunneling on the iPhone. You will need to add your own routes. In some regions, such as Russia, the ability to connect to SOCKS proxies may have been removed from Happ (in that case, use another client).

To add a connection:

Important

SOCKS5 or SOCKS protocol should be used NOT Shadowsocks.

Enter the IP of the device running ByeByeDPI (which you obtained using Android Network Tools) and the port specified in ByeByeDPI. After entering the details, be sure to save the changes.

Important

The proxy server that ByeByeDPI creates does not require a username or password, leave those fields blank in the proxy client.

If the proxy client has a test connection feature, use it.

Note

If there is no response, there is no connection: ByeByeDPI may be turned off, incorrect data may be entered, or the devices may be on different networks.

Afterward, specify the applications that ByeByeDPI should work with on the iPhone (or other device).

Once done, you can launch the app and start using Roblox.

Proxy Clients for Various Devices and Systems:

  • iPhone: Happ, FoXray, Shadowrocket, Sockswitch-Shadowsocks Client, Potatso Lite
  • Windows: you can use browser extensions, e.g. ZeroOmega--Proxy SwitchyOmega V3 (the algorithm of setting here - the only difference: you need to enter not 127.0.0.1, but ip of the device with ByeByeDPI running) or use applications: nekoray, proxifier, proxifyre, Happ, sockscap64 (for older Windows).
  • MacBook: FoXray, V2RayXS (for old macbooks), nekoray.
  • Other Android devices: Happ, nekobox, proxifier for Android, SocksDroid (requires Android 5.0+), SocksTun, for older versions of Android ProxyDroid (root required).

Autorun ByeByeDPI on application startup

There is no built-in feature to launch ByeByeDPI automatically when you start any application, and it’s not currently planned. However, you can achieve this functionality using the MacroDroid app.

Warning

Make sure to remove any restrictions on opening applications when running in the background.

The start/stop activity in ByeByeDPI is ToggleActivity. It should look like this:

You can also create a condition, for example, if VPN is enabled and Discord is closed, ToggleActivity will be triggered.

Settings for working with AdGuard

Switch ByeByeDPI to Proxy mode.

Add ByeByeDPI to AdGuard’s exceptions under the Manage Applications tab. In AdGuard itself, go to the centre tab, and after that search for ByeByeDPI, and simply cut off its filtering.

After that go to settings -> filtering -> network -> proxy. Switch it on, and then enter the same proxy values that are specified in ByeByeDPI, necessarily in SOCKS5 mode.

Then, enable the proxy in AdGuard.

Warning

If AdGuard says “Failed to connect to proxy” when checking, it’s fine—the proxy is actually working!

Important

You may need to add ByeByeDPI to AdGuard’s exceptions in another way: Go to AdGuard -> settings -> basic-> advanced-> advanced-> low-level settings-> excluded applications And add the ByeByeDPI application ID: io.github.romanvht.byedpi

Unlock more services

Go to Selection Settings, disable the ‘Add the nearest GoogleVideo to testing’ option, and enable the ‘Use your domain list’ option. Insert your list of domains to test.

Afterward, search for the strategy in a similar manner as before.

Warning

If all strategies show 0%, the resource is likely blocked by IP, and ByeByeDPI cannot help.

Tip

Large sites and services may require many domains to function correctly.

For example, here are the domains for Discord:

dis.gd
discord.co
discord.com
discord.design
discord.dev
discord.gg
discord.gift
discord.gifts
discord.media
discord.new
discord.store
discord.tools
discord-activities.com
discordactivities.com
discordapp.com
discordapp.net
discordmerch.com
discordpartygames.com
discordsays.com
discordstatus.com
airhorn.solutions
airhornbot.com
bigbeans.solutions
watchanimeattheoffice.com

As you can see, Discord requires more than just discord.com to work properly.

For more domain lists, check this repository .

To identify domains used by a service, you can follow this guide(couldn’t find one in English. If you know something, write in the issue) goes into detail about sniffing traffic on various devices and systems. For Android, I recommend using PCAPdroid. For PC, you can use the browser’s developer tools to inspect network traffic.

Auto-update

The application does not implement an auto-update feature. To enable automatic updates for ByeByeDPI, use Obtainium.

  • Install Obtainium.
  • Tap on ‘Add App’.
  • Add the ByeByeDPI repository: https://github.com/romanvht/ByeDPIAndroid/releases
  • Addendum added
  • To change the auto-update settings, you must change the Obtainium settings.

  1. Team selection is in development. There may be errors. Strategies are not generated automatically - they are always the same. In the current implementation, the selection does not actually select anything - it just checks the performance of a set of strategies that have been added to it by the developer. ↩︎ ↩︎