aboutsummaryrefslogtreecommitdiffstats
path: root/src/frontends/android
Commit message (Collapse)AuthorAgeFilesLines
...
* android: Use configured local identity in auth-cfgsTobias Brunner2016-05-021-9/+30
| | | | | | We still default to the username or subject DN if none is configured. But we don't check if the local ID is contained in the configured certificate.
* android: Use configured remote ID in auth-cfgTobias Brunner2016-05-021-4/+15
| | | | | | | | If one is explicitly set we don't use loose identity matching and send it as IDr to the server. Closes #strongswan/strongswan#29. Fixes #1268.
* android: Pass local and remote identities as settings of a connectionTobias Brunner2016-05-021-2/+4
|
* android: Add fields for local and remote identities to data modelTobias Brunner2016-05-022-6/+44
|
* android: Avoid races between FragmentManager and state savingTobias Brunner2016-05-021-5/+4
| | | | | | | | | onSaveInstanceState is apparently called after pausing the fragment and after that committing any FragmentTransactions causes an IllegalStateException. We could use commitAllowingStateLoss() but that's not really necessary as we don't need to update when we are not active anyway. We also don't update the view directly after registration as this happens asynchronously, i.e. we might be paused when it finishes.
* android: Increase the NAT-T keepalive interval to potentially save battery lifeTobias Brunner2016-05-021-0/+4
| | | | | | In case this doesn't work out we could probably make it configurable. References #1326.
* android: Show confirmation dialog also when connectingTobias Brunner2016-05-021-1/+1
|
* android: Avoid ProgressDialogs in VPN state fragmentTobias Brunner2016-05-027-84/+32
| | | | | Instead we use a ProgressBar directly in the fragment and use the existing button to cancel the process.
* android: Fix display of remediation instructions with support libraryTobias Brunner2016-05-022-8/+15
| | | | | | Because the support library creates its own layout manually and uses different IDs than the list_content layout we can't use the method we used previously (and which is actually recommended in the docs).
* android: Use Fragment class from the support library to avoid deprecation ↵Tobias Brunner2016-05-028-51/+51
| | | | | | | | | warnings For instance, onAttach() with an Activitiy as first argument was deprecated with API level 23. However, the overload with a Context as first argument does obviously not get called on older API levels. Luckily, the classes provided by the support library handle that for us.
* android: Update README.ndkTobias Brunner2016-05-021-8/+9
|
* android: Use relative path for strongSwan sourcesTobias Brunner2016-05-021-8/+10
| | | | | This avoids issues with recursion, which could have happened if the strongswan directory was a symlink.
* android: Fix handling of redirects during IKE_AUTHTobias Brunner2016-05-021-69/+84
|
* android: Fix color of lists and buttons on older platformsTobias Brunner2016-04-273-0/+34
| | | | | This adds a workaround for an issue on older platforms where the list is not properly styled with colorAccent. Similarly applies to borderless buttons.
* android: Use Activity as context for VpnProfileAdapter to fix themeTobias Brunner2016-04-271-3/+1
| | | | | When using the application context theme customizations wouldn't get applied for some reason.
* android: Use "server" instead of "gateway" in profile editorTobias Brunner2016-04-275-44/+44
| | | | | | The term "gateway" is unfamiliar for most new users (or they confuse it with the default gateway of their network) but they usually know that they want to connect to a "server".
* android: Define a new color schemeTobias Brunner2016-04-272-3/+16
| | | | | | | This mainly changes the color of the appbar (colorPrimary), the color of the status bar (colorPrimaryDark) is black like the default. The accent color (colorAccent) used for controls like buttons and check boxes is a slightly toned down version of the default.
* android: Get a warning on use of deprecated featuresTobias Brunner2016-04-271-0/+1
|
* android: Replace use of deprecate getColor() method overloadTobias Brunner2016-04-272-22/+39
|
* android: Make font in log view monospace again on Android 5+Tobias Brunner2016-04-271-1/+2
|
* android: Avoid deprecated tabs in the ActionBar in TrustedCertificatesActivityTobias Brunner2016-04-272-88/+89
| | | | Instead we use TabLayout and ViewPager from the support libraries.
* android: Automatically reload certificates if manager is resetTobias Brunner2016-04-272-36/+46
| | | | No need to manually reset the fragments anymore.
* android: Make TrustedCertificateManager an ObservableTobias Brunner2016-04-271-8/+28
| | | | | Observers are notified when the manager is reset (and initially when the certificates are first loaded).
* android: Switch to AppCompat/Material theme for dialogsTobias Brunner2016-04-2710-61/+117
| | | | | | | There is no AppCompatProgressDialog class as the use of ProgressDialog is discouraged (instead progress bars should be placed in the layout directly). To display the current ProgressDialog instances correctly on systems < 21 we modify the window background color.
* android: Switch to AppCompat/Material theme and use custom Toolbar as AppBarTobias Brunner2016-04-2716-157/+184
| | | | | Also includes some whitespace/formatting changes due to the switch to Android Studio.
* android: Ignore build/ in project directoryTobias Brunner2016-04-271-0/+1
|
* android: Update platform tools and pull in support libsTobias Brunner2016-04-271-2/+4
| | | | | | | We'll have to change some stuff that Google deprecated (e.g. the tabs in the ActionBar) and that requires changing the theme at least in activities. Since that would look a bit inconsistent we'll change it globally and use parts of the support library.
* android: Update Android Gradle plugin and wrapperTobias Brunner2016-04-272-3/+3
|
* android: OPENSSL_NO_ENGINE is now properly defined in the headersTobias Brunner2016-04-151-1/+0
|
* peer-cfg: Use struct to pass data to constructorTobias Brunner2016-04-091-7/+8
|
* child-cfg: Use struct to pass data to constructorTobias Brunner2016-04-091-9/+12
|
* kernel: Use structs to pass information to the kernel-ipsec interfaceTobias Brunner2016-04-091-41/+35
|
* Use standard unsigned integer typesAndreas Steffen2016-03-246-36/+36
|
* android: Enable 64-bit ABIsTobias Brunner2016-03-231-1/+1
|
* android: Enable build against API level 21Tobias Brunner2016-03-231-1/+0
| | | | | | | While building against this level in general would break our app on older systems, the NDK will automatically use this level for 64-bit ABI builds (which are not supported in older levels). So to build against 64-bit ABIs we have to support this API level.
* libhydra: Remove empty unused libraryTobias Brunner2016-03-035-17/+1
|
* libhydra: Move kernel interface to libcharonTobias Brunner2016-03-034-9/+6
| | | | This moves hydra->kernel_interface to charon->kernel.
* libipsec: Pass the same data to del_policy() as to add_policy()Tobias Brunner2016-02-041-2/+3
| | | | | | We already do this for the other kernel interfaces. Fixes e1e88d5adde0 ("libipsec: Don't attempt deletion of any non-IPsec policies")
* android: Suppress compiler warnings about missing field initializersTobias Brunner2015-11-131-0/+1
| | | | | Triggered by -Wextra for many INIT usages where we only partially initialize a struct.
* android: Add some (older) unit testsTobias Brunner2015-11-123-0/+381
|
* android: Properly handle shorter types in BufferedByteWriterTobias Brunner2015-11-121-0/+86
| | | | | | | | In Java all integer types are signed, when a negative integer is casted to a larger type (e.g. int to long) then due to sign extension the upper bytes are not 0. So writing that value to a byte array does not produce the expected result. By overloading the putX() methods we make sure to upcast the values correctly.
* android: Migrate to the Gradle build systemTobias Brunner2015-11-12139-71/+327
| | | | | This uses a manual way to trigger the NDK build (the default with on-the-fly Android.mk files does not work for us).
* kernel-interface: Pass the same data to del_policy() that was passed to ↵Tobias Brunner2015-11-101-3/+4
| | | | | | | add_policy() The additional data can be helpful to identify the exact policy to delete.
* android: New release fixing roaming on 5+ and adding new advanced optionsTobias Brunner2015-07-281-2/+2
|
* android: Keep NDK API level at 19Tobias Brunner2015-07-281-0/+1
| | | | | | The headers/libraries changed a lot with level 21 so that our app won't run on devices with Android < 5 when built against it. We currently don't need any new native APIs so that should be fine.
* android: Apply split tunneling options when creating TUN deviceTobias Brunner2015-07-281-11/+111
| | | | | | | | | | | | | | | | | | | | | Android blocks traffic for address families for which no IPs, DNS servers or routes are installed via VpnService.Builder. Since Android 5+ (API level 21) it is possible to explicitly allow such traffic to bypass the VPN. So for proper split tunneling we note whether we saw a VIP and/or DNS server of a specific family, and if not, allow traffic of that family to bypass the VPN using the new API (on older systems there is no change and such traffic will still be blocked). Otherwise, we do what we did so far, that is, simply install the received routes (traffic selectors), all other traffic will not be directed to the TUN device and use the underlying network instead. If traffic for a family should be blocked we install a default route via TUN device even if we received more specific traffic selectors from the server. libipsec will use the actual traffic selectors as IPsec policies and drop any packets it received that don't match them. We only do this if we saw any VIPs or DNS servers of a family. Otherwise the traffic for that family is blocked anyway.
* android: Build against the android-21 targetTobias Brunner2015-07-281-1/+1
|
* android: Extend GUI so the split tunneling options can be setTobias Brunner2015-07-287-1/+45
|
* android: Add field for split tunneling config to data modelTobias Brunner2015-07-282-3/+28
|
* android: Retrigger a roam event if reportedly connected but no source ↵Tobias Brunner2015-07-281-2/+35
| | | | | | | | | | | | | | | | | | address found In dual-stack environments the IPv6 connectivity (via autoconfiguration) might be established before the IPv4 connectivity (via DHCP). It seems Android triggers the CONNECTIVITY_ACTION broadcast already when the first family is fully configured. At that time we might not be able to find an IPv4 source address. And since Android does not trigger the broadcast again if IPv4 connectivity is established, the connection is broken afterwards. So we store the connectivity state and if we are reportedly connected but still find no source address we trigger a roam event to recheck for an IPv4 address. This will cause regular rechecks if a device enters an IPv6-only network, but I guess that's rare (otherwise we could limit the number of rechecks done between connectivity changes).