
Roaming Borders - Avoid unexpected roaming charges
· com.sleistikow.roamingborders
UpdatedJan 14, 2026
PublishedJan 14, 2026
Packagecom.sleistikow.roamingborders
MD5aac3399d29b14202bed63877580aec65
SHA1 (signer)76:97:64:00:3E:CE:7C:D8:E8:35:33:1B:8B:E4:56:2D:EB:C1:11:93
Signed byC=DE, L=Lingen (Ems), CN=Simon Leistikow
Malware scanTRUSTED
What's new
Initial Release.
Description
Why this app?
When you travel near country borders, your phone may automatically connect to a stronger cell tower across the border—even if you never left your country. This can quickly result in costly roaming fees.
Manually toggling roaming is inconvenient and easy to forget. Roaming Borders automates the guardrails so you don’t have to.
What it does
- Block roaming when you don’t want it: Select allowed countries; if your device connects outside that list, data traffic is blocked.
- Avoid surprise charges: Prevent accidental cross-border roaming near national frontiers.
- Simple presets or full control: Choose ready-made country presets or build your own list for upcoming trips.
- On-device only: Uses Android’s VpnService as a local firewall. No tunneling to servers.
How it works
Roaming Borders runs a lightweight, on-device VPN that filters traffic based on your current country.
- When your current country is not in your allow-list → block data traffic system-wide.
- When your current country is allowed → allow traffic as normal.
- When connected to Wi-Fi, the guard pauses automatically and resumes once Wi-Fi disconnects.
Note on reboot: After restarting your phone, the guard re-enables after a short delay. To be extra safe, enable Airplane mode before restarting.
Limitations
While the app was successfully tested in several scenarios (e.g. EU SIM roaming in Egypt, Israel, Switzerland), it is technically impossible to guarantee avoiding roaming charges in all scenarios. Known limitations are summarized below.
- Since on Android, currently only a single VPN can be used at the same, this app does not work in conjuction with other VPN apps. The VPN that was started last will be used by the system.
- A few milliseconds may pass between the moment the phone was registered to a blocked country and the moment the data is effectively blocked by the VPN. This is impossible to avoid due to technical reasons and may result in small roaming fees even if it feels like the app is blocking data immediately.
- Some providers may charge a basic fee just for connecting to their cell towers. It is not possible to avoid such costs with this app.
- The VPN service does not cover the entire network stack. Hence, some system apps may still send and receive data which is impossible to avoid.
- When using the phone running this app as mobile hotspot / teathering device, connected devices are not affected by this app. This is also due to the VPN service not covering the entire network stack.
When you travel near country borders, your phone may automatically connect to a stronger cell tower across the border—even if you never left your country. This can quickly result in costly roaming fees.
Manually toggling roaming is inconvenient and easy to forget. Roaming Borders automates the guardrails so you don’t have to.
What it does
- Block roaming when you don’t want it: Select allowed countries; if your device connects outside that list, data traffic is blocked.
- Avoid surprise charges: Prevent accidental cross-border roaming near national frontiers.
- Simple presets or full control: Choose ready-made country presets or build your own list for upcoming trips.
- On-device only: Uses Android’s VpnService as a local firewall. No tunneling to servers.
How it works
Roaming Borders runs a lightweight, on-device VPN that filters traffic based on your current country.
- When your current country is not in your allow-list → block data traffic system-wide.
- When your current country is allowed → allow traffic as normal.
- When connected to Wi-Fi, the guard pauses automatically and resumes once Wi-Fi disconnects.
Note on reboot: After restarting your phone, the guard re-enables after a short delay. To be extra safe, enable Airplane mode before restarting.
Limitations
While the app was successfully tested in several scenarios (e.g. EU SIM roaming in Egypt, Israel, Switzerland), it is technically impossible to guarantee avoiding roaming charges in all scenarios. Known limitations are summarized below.
- Since on Android, currently only a single VPN can be used at the same, this app does not work in conjuction with other VPN apps. The VPN that was started last will be used by the system.
- A few milliseconds may pass between the moment the phone was registered to a blocked country and the moment the data is effectively blocked by the VPN. This is impossible to avoid due to technical reasons and may result in small roaming fees even if it feels like the app is blocking data immediately.
- Some providers may charge a basic fee just for connecting to their cell towers. It is not possible to avoid such costs with this app.
- The VPN service does not cover the entire network stack. Hence, some system apps may still send and receive data which is impossible to avoid.
- When using the phone running this app as mobile hotspot / teathering device, connected devices are not affected by this app. This is also due to the VPN service not covering the entire network stack.
Required features
- Faketouch android.hardware.faketouch
- Location android.hardware.location
Permissions (10)
Roaming Borders - Avoid unexpected roaming charges requests the following Android permissions:
- Access Coarse Location android.permission.ACCESS_COARSE_LOCATION
- Access Network State android.permission.ACCESS_NETWORK_STATE
- Foreground Service android.permission.FOREGROUND_SERVICE
- Foreground Service Special Use android.permission.FOREGROUND_SERVICE_SPECIAL_USE
- Internet android.permission.INTERNET
- Post Notifications android.permission.POST_NOTIFICATIONS
- Read Phone State android.permission.READ_PHONE_STATE
- Receive Boot Completed android.permission.RECEIVE_BOOT_COMPLETED
- Request Ignore Battery Optimizations android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
- Com Sleistikow Roamingborders Dynamic Receiver Not Exported Permission com.sleistikow.roamingborders.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION