Age | Commit message (Collapse) | Author |
|
|
|
|
|
This ensure the profile counter is incremented and the profile is
saved to disk to avoid the race condition of not getting the user/pass
which was started.
Closes #1342
|
|
Also throw an error if neither of CA or peer-fingerprint is configured
|
|
|
|
|
|
|
|
Ice cream sandwich was the first Android version to support the
VPNService API, which also gave the project its name as it was an
Android port to ICS. Now that the NDK does no longer support API 14 and
15, this project needs to say farewell to Ice cream sandwich.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixes: Implement support of openvpn://import-profile/ support
E AndroidRuntime: FATAL EXCEPTION: main
E AndroidRuntime: Process: de.blinkt.openvpn, PID: 15364
E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity
{de.blinkt.openvpn/de.blinkt.openvpn.activities.MainActivity}: java.lang.NullPointerException:
Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3454)
E AndroidRuntime: at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3494)
E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2757)
E AndroidRuntime: at android.app.ActivityThread.-wrap12(ActivityThread.java)
E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1496)
E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6186)
E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method
'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
E AndroidRuntime: at de.blinkt.openvpn.activities.MainActivity.onResume(MainActivity.java:82)
E AndroidRuntime: at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1270)
E AndroidRuntime: at android.app.Activity.performResume(Activity.java:6788)
E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3431)
E AndroidRuntime: ... 10 more
|
|
|
|
For details about the protocol see
https://github.com/OpenVPN/openvpn3/blob/master/doc/webauth.md
|
|
|
|
|
|
|
|
|
|
opvpn is a rather unusual abbreviation for openvpn
|
|
We have found an issue that we couldn't install any of our apps next to each other, and also next to the official OpenVPN for Android app.
The reason is that the provider authorities must be unique globally on the device. Since the class name is hardcoded, it will be the same for all of the implementors of this library.
Although this issue can be easily fixed by changing this manually, I think it is important to do it, because it might be missed by most developers, since we usually do not test 2 VPN apps next to each other. By doing this change, the authority will always start with the final application package ID, so it should be unique globally.
|
|
To preserve backward compatibility, a new method is created: IOpenVPNAPIService#startVPNwithExtras(String, Bundle).
Currently only one parameter is supported:
de.blinkt.openvpn.api.ALLOW_VPN_BYPASS – boolean.
|
|
|
|
|
|
|
|
|
|
|
|
Use dhcp-option PROXY_HTTP 1.2.3.4 8080 or
push "dhcp-option PROXY_HTTP 1.2.3.4 8080"
from a server to use the feature.
|
|
|
|
|
|
|
|
|
|
This is a common requirement of Google play store. Even though this
app should not really need them and therefore the content is pretty
short and redundant.
|
|
|
|
|
|
|
|
Most of these things are minor to the point that changing them is
only to make the scanner happy.
|
|
|
|
|
|
|
|
Based on server-side OpenSSL behaviour the data to be signed by
externalCertificateProvider may be or may be not padded already.
To choose the proper signing mechanism we need to pass external info.
|
|
Noticed by random dragon on reddit.
|
|
|
|
|
|
On SDK 30 or higher this permission is required to be able to list all
packages on a device. This app needs that to show all installed apps
in the allow/disallow Apps via VPN dialog.
|
|
|
|
See also https://developer.android.com/reference/android/net/VpnService.Builder#setMetered(boolean)
|
|
closes #1234
|