ivpn / android-app Goto Github PK
View Code? Open in Web Editor NEWOfficial IVPN Android app
Home Page: https://www.ivpn.net/apps-android
License: GNU General Public License v3.0
Official IVPN Android app
Home Page: https://www.ivpn.net/apps-android
License: GNU General Public License v3.0
executing external native build for cmake C:\android-app\app\CMakeLists.txt
Affected Modules: Project-android-app-app
this is my cmake file:
cmake_minimum_required (VERSION 3.4.1)
project(IVPN)
add_subdirectory(tools)
add_subdirectory(src/main/cpp)
i think tools
directory is problem i can not find it
The app will randomly disconnect from VPN. Last time this happened I was actively using my phone, the device vibrated twice and I noticed a notification from always-on agent:
Notice the notification above - IVPN is supposedly "still connected". This is not correct and can be verified by looking up one's IP address. At this time, the device was not connected to VPN anymore.
Additional screenshot shows my battery optimization setting:
###Description
In the current Google Play Store build, 2.3.0, when attempting to login with a non activated account, the plans are not presented, the user is redirected to the home screen, but without logging in.
Logging in with a non activated account doesn't present the IVPN plans.
When a user tries to login with a non activated account, the Select IVPN Plan screen should be presented, so the user can continue with the account creation flow.
Devices, OS: Samsung G S10/Android 10, Huawei MediPad T5/Android 8
IVPN app version: 2.3.0
When servers list is sorted by Country, display servers with country code before city name, like this:
AT, Vienna
AU, Sydney
BE, Brussels
BG, Sofia
Note:
This feature has already implemented on iOS and Desktop clients.
On version 2.4.1, so far on Android 8 devices, the option 'Color theme by battery saver' does not work. When setting this option and enabling 'Battery saver' in the device, the app still uses light mode instead of dark mode.
Note:
So far only reproduced on Android 8 OS devices.
'Color theme by battery saver' not working old devices.
'Color theme by battery saver' should work as expected, i.e. Dark mode when Battery Saver is enabled in the device, otherwise, light mode.
IVPN: 2.4.1
Devices: Xiaomi Redmi 5/Android 8.1, Huawei MediPad T5/Android 8
Can you please submit this app to F-Droid?
thanks
Needs code improvements:
AOSP devices installing the .apk version of the IVPN app receive the warning that the app will not work properly without Google Play Services.
Remove Google Play Service dependencies from .apk and f-droid versions of the IVPN app.
No crash logs in the Sentry
Allow android app to be installed on external storage.
Allow android app to be installed on external storage.
None. My phone isn't rooted and has "only" 4GB internal memory, which has been progressively hogged by the system over time. I move all apps i can to external storage SDCard but quite a few don't allow this. I know it's not just a matter of changing the manifest: on certain conditions external storage gets unmounted. Still, i'd very much prefer to move apps to external storage whenever possible.
com.android.billingclient is not foss so it's not allowed in F-Droid. I'll disable affected versions. Could you please remove com.android.billingclient from fdroid flavor? Thanks!
Currently, each protocol can have a different fastest server configuration to be used as the fastest servers.
The fastest server configuration should be the same for all protocols, so even if the server lists differs, if user deselect one location, it should be saved for all protocols.
Note:
Already implemented on iOS.
Currently, it is possible to enable or disable IPv6 for WireGuard while connected, however these changes won't take effect unless the user reconnects manually. This behavior could lead to confusion since once the users enable the feature, they will expect it to work immediately.
If the user attempts to enable/disable IPv6 for WireGuard while connected to the VPN, perform one of the following:
The IVPN App for Android crashes when initiating a VPN connection soon after launching the app.
It is possible to open the app and check/adjust settings without crashing. It also seems possible to launch the app, wait for three minutes, then connect without crashing.
Crash logging is enabled, but no logs are received.
Phone reports that IVPN app keeps stopping. If app is open it just disappears and phone app launcher screen appears.
The app connects and operates normally. No issues were present on the same device with 2.3.0 site APK.
n/a
I don't think I need any descriction for this issue. Tapjacking protection is absolute need of any app which can have any possibility of finance related activity.
Currently I cannot set IVPN to remain connected always without giving location access for Network protection.
There should be option to remain connected even when we are connected to any network or not. App should automatically reconnect every time device has network. Current settings should stay but option of Auto-connect should be introduced, which may include connect on boot also.
(Hopefully I am not missing anything..)
The Firewall stops blocking the traffic after manually disconnecting from the VPN server, then connecting and disconnecting from the VPN server again while being on 'Untrusted network' and having the 'Enable kill-switch' option checked in Network Protection Rules area.
Although 'Kill-switch active' notification is displayed, the Internet access is not blocked.
The issue does not seem to occur when the 'main' Killswitch is toggled 'On'.
Device, OS: Samsung G S10/Android 11, Huawei MediPad T5/Android 8
IVPN version: 2.3.0
Allow LAN while being connected to VPN
This is so that I can connect for example youtube app to chromecast/google tv etc. while still being behind vpn. Currently, I either need to disable vpn or turn off vpn access for specific apps for lan access. (Hope I'm not missing something obvious :D )
This already seems to work in the linux cli app with ivpn firewall -lan_allow
. So I guess something similar to that.
Currently, I either need to turn off VPN or disable VPN access for some apps, which would be really nice to avoid :)
Allow users access to the IPv6 internet after they connect to the WireGuard VPN.
In current clients, WireGuard [Interface]
is only configured with IPv4 address.
By adding IPv6 address in the client config, VPN tunnel will have IPv6 traffic as well, when connected to gateway which support IPv6.
Example client config:
[Interface]
Address = 192.0.2.0,2001:0db8:0:0::2001:0db8/64
ListenPort = 51820
PrivateKey = <PrivateKey>
DNS = 198.51.100.0
[Peer]
PublicKey = <PublicKey>
AllowedIPs = 0.0.0.0/0,::/0
Endpoint = 203.0.113.0:2049
PersistentKeepalive = 25
There should be an option in the app settings that enables IPv6 inside VPN tunnel, which is off by default.
Currently If the current network is set to untrusted and the app fails to regenerate a WG key because of e.g. no internet connection (airplane mode for testing), once you reestablish the connection, the app will not generate a new key upon connecting automatically (because trust status), so the app will be connected to the VPN without a key, consequently there will be no internet traffic on the device.
When WG rotation fails, the app will connect without WG key when connecting to an untrusted network
The app should present an error and remain disconnected, so the user can connect manually and regenerate the new key.
IVPN: 2.4.1
Devices: Samsung Galaxy S10, Android 11
-Hello @AlexKorvin @jurajhilje I have another feature request for the Android version of IVPN if you don't mind.
1.) Is there any plans to utilize or introduce the Mock Location feature under Android Developer Settings?
-If a feature such as GPS Override ("Mock Location") is supported and enabled within the IVPN application.
-Any app on your Android device that requests access to your physical coordinates will be overridden by the coordinates of a selected VPN server when in use.
-For example, say a user is physically located in the USA and is connected to one of IVPN's servers in Switzerland. Whenever any app on there Android device asks for their location it will now receive the location of the VPN server in Switzerland as opposed to their actual GPS location in the USA.
-One current and well known vpn service called ''Surf Shark" offers this feature already, and it already works on there Android version of there VPN application. I tested there service and utilized this feature and it was easy to enable under developer options. They included easy to follow step by step instructions how to enable the feature.
-I used it on two diffrent Android phones and two diffrent versions of Android. Versions being Android 9 pie and Android 10 Q. The feature worked seamlessly and didn't leak my location ever, and matched the same location of the server I was connected too.
-Overall I think its a useful feature and better then having to use a third party app alongside your vpn to spoof your GPS Location.
-Thank you and I hope I explained everything well enough. I hope to hear back from someone here soon.
There is one report of an issue with the IVPN App for Android on ChromeOS where the app's screen goes black when there is any interaction with the app. It is possible to install the app and log in, but connecting or adjusting any settings results in a black screen. The map and actual location are displayed, but toggling the connect switch causes the screen to go black. It is possible to open the app's Settings screen, but any interaction causes the black screen. Changing the app's theme results in a black screen.
[I do not have a ChromeOS device to use to try to replicate the issue.]
n/a
IVPN apps load connection information from IVPN API server (https://api.ivpn.net/v4/geo-lookup
), in several cases:
Current apps only load IPv4 information.
New version of apps will call /geo-lookup
API with both IPv4 and IPv6 IP addresses by default.
When both IPv4 and IPv6 connection info is available, results needs to be visible in the Control panel.
A toggle is used to show IPv4 or IPv6 connection information.
When both IPv4 and IPv6 connection info is available, but location (city or country) is different, apps need to show "IPv4/IPv6" tabs on the map view with label "Location does not match".
Our app are using a range of IPv4 addresses used as a fallback if API server cannot be reached with api.ivpn.net hostname.
When app is loading both IPv4 and IPv6 connection information from IVPN API server, app should use provided IPv4 and IPv6 IP address ranges, and not using hostname.
On IVPN version 2.4.1, when accessing the "Add funds" screen without a Google Play Store account, the discounts on the plans are missing, furthermore, if attempting to make a payment, nothing happens, the validation is missing when tapping on "Pay".
Note:
See attached screenshot for further details.
Missing validation when trying to purchase a plan without a Google Play account
When a user attempts to make a payment without a Google Play Store account, the app should present an error message.
*Make sure the device does not have a Google Play Store account.
Device: Xiaomi Redmi 5, Android 8.1
IVPN version: 2.4.1
One user has reported a minor issue with VPN connection status notification disappearing after our app generates a new WireGuard key:
I have an issue with the Android app where every time the wireguard key changes (I've set it to daily), the notification disappears. The VPN is still connected, but I have to reconnect to make the notification appear again.
I'm on Lineage OS Android 10.
KillSwitch toggle goes off whenever we quit settings. This seems to occur when app is not set as always-on-VPN in android settings but I haven't looked into that much.
KillSwitch toggle goes off. And also killswitch isn't working.
It should remain turn on.
CHECK FOR UPDATES
in Settings -> Updates
Says You are using the latest version
Should've shown me 2.5.1 available.
It is possible to open the server connection popup inside Settings, Account or Select Server screens, the issue happens when selecting a server and immediately open one fo these screens.
Note:
See attached screenshot for further details.
Server connection popup can be displayed inside Settings, Select Server or Account screen.
The connection popup should not be opened inside Settings, Account or Select Server screens.
Devices: Samsung G S10/Android 11 and Huawei MediPad T5/Android 8
IVPN version: 2.3.0
On version 2.4.1, when setting the default trust status to Untrusted/Trusted, the trust status is always reverted back to None. The issue does not happen the first time the trust status is changed, but when logging out and logging back in, from this moment on, it is not possible to change the default to Untrusted or Trusted.
Note:
The issue happens in all devices, Android OS.
This issue might be related to the changes implemented on #48
Default trust status is always reverted to None.
User should always be able to change the trust status of default, mobile and current network.
IVPN: 2.4.1
Devices: Samsung Galaxy S10/Android 11, Xiaomi Redmi 5/Android 8.1
Have the option to run a SOCKS5 proxy on localhost that connects to the VPN. This would allow you to use IVPN with apps such as NetGuard which have an option to connect to a SOCKS5 proxy.
Tag v2.1
does not match versionName v2.1.0
breaking autoupdate: https://f-droid.org/wiki/index.php?title=net.ivpn.client/lastbuild_90&oldid=283583
This setting should be disabled (or hidden) and on by default.
When user enabled IPv6 for VPN tunnel, this setting should became visible.
When both "Enable IPv4" and "Show gateways without IPv6 support" are enabled, on the servers list there should be "IPv6" label next to servers that support IPv6.
Currently, I need to stop the vpn before I can change any settings.
It would be really nice if I could instead change the settings first and then get prompted whether to restart the connection or not.
On the latest beta version, as well as on our live version, there is a small UI issue in the connection toggle, it seems that the toggle is cropped to the left.
Note:
See attached screenshot for further details.
Small UI issue in the connection toggle.
The connection toggle should be displayed correctly.
Device: Samsung Galaxy S10, Android 11
IVPN versio: 2.3.0
Would be nice to get support for Google TV :) . Sorry if this has been discussed prior and decided against, but I didn't notice anything in the issues list.
Our Android app is measuring and updating latency when connected to the VPN server and pings other servers from the location of the VPN server you are connected to, which confuses some customers.
The correct behaviour (which is also observed in our desktop and iOS apps) should be the following - latency is calculated when you are NOT connected to the VPN server and when:
When user is connected and navigates to the Server Selection area, he should expect to see latency values that were calculated prior to connecting to the VPN.
With the current app implementation, there is a case when it is not possible to force login when reaching session limit with 2FA or captcha enabled.
Apps need to handle the case like this:
/session/new
API/session/new
with force: true
, app needs to also include 2FA or captcha code from the previous API callUser should be able to force the login when reaching the session limit after entering the correct captcha or 2FA code.
On Android 11 OS, when Network Protection and KillSwitch are enabled, if the user logs out, the notification about Network Protection does not disappear. When logging back in, the notification will remain visible, even though Network Protection is disabled.
At this point, the only way to make the notification to disappear is to enable Network Protection and disable it again.
Note:
So far only reproduced on my Android 11 device - Samsung Galaxy S10
Network Protection notification does not disappear after logging out.
Network Protection notification should disappear after logging out since the feature is disabled automatically.
Device: Samsung G S10/Android 11
IVPN version: 2.4.1
I'm not sure if this is already used but I want to make sure that the split tunnelling is working also for system-apps so that I can mimic the behaviour of network filtering apps like NetGuard.
The idea is to enable Kill switch and Always-on VPN both from the app and natively in the system, then using tunnelling enable only apps that I'm willingly giving permission for internet access.
I found the kill switch really useful for this to replace NetGuard as it already uses the only VPN slot in Android, but at least it allows managing the rules for system apps while in IVPN I see only user apps in the list, so I'm not quite sure if this is working well.
If possible, allow managing system apps in split tunnelling or add a feature that block access to internet for certain app.
Alternatives that I'm aware of are rooting the phone to use apps that filter based on iptables like AFWall+ then use the VPN app. rooting is not a good solution for many people. NetGuard supports using SOCKS for routing but that's not possible with IVPN
Thank you
A multi hop connection is of limited value when the two hops rely on the same hosting provider.
Very simple: If enabled, when a user selects an ingress server any egress options that uses on the same hosting provider will be marked or grayed out. Vice versa. Or an option in settings that simply prevents same provide cascades from being created (eg if user has selected random ingress and/or egress option)
Studying the ivpn server list and painstakingly configuring chains by referencing this list .
Once the app crashes, the crash keeps occurring on relaunching the app, even after undoing the mock location app change. The app crash persists across reboots as well. I had to uninstall and reinstall the app to get it working again.
No crash when I change server repeatedly with mock location enabled.
Currently, when the app fails to generate manually a new WireGuard key (e.g. internet connection error), the app shows an error, but immediately switches the protocol to OpenVPN.
Since we now use WireGuard as the default protocol and for consistency with the other clients, we should do the following.
When manual key rotation fails:
Steps to reproduce:
Currently Mobile platforms don't offer any censorship circumvention. So they may not work in restrictive areas of world.
Shadowsocks support should be introduced.
Mobile platforms can support obfsproxy.
1.) Expand Anti Tracker by improving Its blocking capabilities by allowing users the ability: To add a custom blocking list option too improve upon Anti Trackers current blocking capabilities.
(Examples of popular and open source block list/filters include- Easy List, Easy Privacy, Ad Guards filters, Fanboys filters, etc...)
-"Edward De, From IVPN Support" informed me via email on 01/18/21 the following- "Yes, it's on our to-do list, though I have no firm ETA to share for when this feature becomes available."
Thank you and hope to hear back from someone soon!
Map should support Zoom in/out feature on mobile platforms. Currently Map support this on Desktop. It's hard to navigate into Map without this feature.
Besides that Green is more apropriate colour for connected state. It gives better visual information than current blue colour.
We used a static analysis tool to analyze ivpn and found that ivpn will invoke getInstalledApplications
in SplitTunnelingViewModel.InflateApplicationInfoAsyncTask
.
This function will use binder to get all apps' infos in this device, which will cause TransactionTooLargeException
and crash ivpn with many apps installs.
Some similar issues could be found in AdAway, ShoppingList.
We suggest that the invocation should be surrounded by try/catch, or add more arguments to limit return data size.
InflateApplicationInfoAsyncTask(PackageManager packageManager) {
this.packageManager = packageManager;
this.applicationInfoList = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
}
In the current Google Play Store build 2.3.0, when trying to add more time to an account, the action "Change" is shown in the Add Funds screen, this action does nothing since the user cannot change plans once he's logged in.
Note:
See attached screenshot for further details.
Change plan action button "Change" is displayed when trying to add more time.
The action "Change" should never be present in the Add Funds screen when the user tries to add more time to an existing subscription.
Devices, OS: Samsung G S10/Android 10, Huawei MediPad T5/Android 8
IVPN version: 2.3.0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.