22 Commits

Author SHA1 Message Date
Hans-Christoph Steiner
81cbef82b4 finish ant/gradle build for appcompat-v7
Both preferencefragment and appcompat-v7 submodules need the
android-support-v4.jar to be included in their respective libs/ dirs in
order for ant to build those projects.
2014-06-04 23:19:54 -04:00
Hans-Christoph Steiner
0ee5332c01 rename 'ant-src' to 'symlinks-for-ant-and-eclipse' for clarity
In order to make the codebase more self-documenting, rename it to more
clearly say what it is for.
2014-05-25 22:53:17 -04:00
Daniel Martí
414c4e0c67 Use zxing-core from source in both ant and gradle
Also, temporarily remove zipsigner from ant until spongycastle is added to it
so that ant builds work
2014-05-25 13:39:56 +02:00
Daniel Martí
b7feebddf9 Also use jmdns like a java library in ant 2014-05-20 18:52:19 +02:00
Daniel Martí
67c7c9b8b5 Don't try to use nanohttpd as an android library either 2014-05-20 18:37:20 +02:00
Daniel Martí
319e1faf3b Add zipsigner as a submodule 2014-05-20 18:22:24 +02:00
Daniel Martí
9d6cabe737 Update nanohttpd 2014-05-19 08:49:56 +02:00
Daniel Martí
cdbbb9d580 Add jmdns as a submodule 2014-05-18 14:04:07 +02:00
Daniel Martí
aa52516a41 Forgot to rollback the ant-prepare nanohttp path 2014-05-18 13:44:44 +02:00
Daniel Martí
b3107eb6b2 Fix gradle support while keeping ant support
Most of this was done by pserwylo on his branch feature/gradle. The only thing
left is merging the fixes into nanohttpd.
2014-05-18 12:55:30 +02:00
Dominik Schürmann
919f9c63b8 Merge master into super-fdroid 2014-05-11 00:38:53 +02:00
Daniel Martí
52c61ec1ca Update nanohttpd, replace as an ant library 2014-05-07 22:02:40 +02:00
Dominik Schürmann
732fb87944 Add libsuperuser as external git submodule and project dependency 2014-04-26 02:40:08 +02:00
Daniel Martí
6b2b759a16 Whoops, forgot to also change the ant setup 2014-02-15 11:18:58 +01:00
Daniel McCarney
254327f9a7 Adding support for SPKI pins, trust-on-first-use of TLS certs.
In order to support F-droid repositories hosted with HTTPS using
a self-signed certificate the f-droid client should prompt the user to
trust or 'memorize' the certificate presented by a repository. The
MemorizingTrustManager[0] project enables easy integration of
a prompting activity and corresponding trust manager implementation.
This behaviour is useful to projects such as Kerplapp[1] that boostrap
an F-droid repository on a user's device where it isn't possible to
acquire a long lived CA vetted TLS certificate.

In addition to Trust-on-First-Use (TOFU) behaviour, this patch
integrates the PinningTrustManager [2] project by Moxie Marlinspike to
allow the FDroid client to ship a hardcoded set of Subject Public Key
Identifier pins [3] for the official FDroid repository TLS certificate,
and the Guardian Project TLS certificate. Additional pins can be added
to the FDroidPins.java class.

The upstream release of AndroidPinning by moxie0 uses a minsdk value of
8. The Fdroid client has a minsdk of 5, presenting compatibility issues
using the AndroidPinning lib as a submodule. Fortunately it seems there
is no technical reason preventing using a minSDK of 5 with
AndroidPinning. I have created a fork with this change and submitted
a pull req upstream. Until this pull is merged we can use my fork of
AndroidPinning as the submodule.

The new 'flow' for deciding if a repositories presented TLS certificate
should be trusted is as follows:

1) If the certificate was previously trusted by a TOFU action, then the
   certificate is accepted as trusted

2) If the certificate wasn't previously trusted by a TOFU action but
   there is a matching SPKI pin then the certificate is accepted as
   trusted

3) If the certificate wasn't previously trusted by a TOFU action and
   there is no SPKI pin but the certificate is signed by a trusted
   Certificate Authority it is accepted as trusted (This is the
   behaviour of the FDroid client prior to this patch with all other
   conditions being a hard-fail).

4) If the certificate wasn't previously trusted by a TOFU action and
   there is no SPKI pin and the certificate is not signed by a trusted
   CA (i.e. self signed or otherwise) then the user is prompted to TOFU
   the certificate. The user may choose to trust the certificate for the
   current connection or forever. If the user chooses an option other
   than "deny" the certificate is accepted as trusted for the specified
   duration.

Users currently using a TLS protected repository will see *no
difference* in user experience after this patch is merged as the only
TLS protected repositories that would function prior to this patch were
providing certificates that match condition #3.

[0] https://github.com/ge0rg/MemorizingTrustManager/wiki/Integration
[1] https://github.com/guardianproject/kerplapp
[2] https://github.com/moxie0/AndroidPinning
[3] https://www.imperialviolet.org/2011/05/04/pinning.html
2014-01-08 11:01:12 -08:00
Daniel Martí
36cba44c07 Bump project target to android-19 2013-11-10 18:55:35 +01:00
Daniel Martí
38b16f3f8f Bump target in proj.prop to match AM.xml 2013-10-22 17:39:37 +02:00
Ciaran Gultnieks
1011c8fadc Translation updates 2013-10-08 12:21:34 +01:00
Daniel Martí
017811fb92 Use UIL, don't do caching on our own.
Advantages:

* Initial setup time for icons is zero
* We don't have to deal with it ourselves
* We can use the default package icon while we load
2013-09-23 20:21:29 +02:00
Daniel Martí
ec74cbed48 Bump target sdk level to 18 2013-08-29 21:51:08 +02:00
Daniel Martí
bab3a81cce Add proguard to project.properties 2013-08-07 11:57:00 +02:00
Daniel Martí
61bffdac71 Add project.properties (closes #323) 2013-08-06 16:26:08 +02:00