24 Commits

Author SHA1 Message Date
Daniel Martí
89575a4591 Switch from dschuermann/libsuperuser to Chainfire/libsuperuser 2015-02-20 17:43:07 +01:00
Peter Serwylo
59b9fd6a8c add PreferenceFragment lib since appcompat lacks such a thing
Although Google is encouraging people to make old devices run apps
with the action bar (via appcompat-v7), they haven't provided a way
for people to create preference/setting screens with an action bar.

There are plenty of issues in the Android issue tracker relating
to this, but it doesn't yet seem to be on the radar of the Android
devs.

Until there is a native implementation of PreferenceFragment in
the appcompat-v7 support library, this submodule provides is a 3rd
party solution. It is actually a fork of the first repo in github,
though that was a bit of an upload and dump, without accepting MR's.
This fork includes gradle support.
2014-06-04 23:16:26 -04:00
Daniel Martí
12868902e9 Forgot the ignore=dirty bits in .gitmodules 2014-05-25 13:52:17 +02: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í
2beee93e07 Replace nanohttpd with _hc's fork again for https 2014-05-21 08:58:42 +02:00
Daniel Martí
29048a0c60 Include spongycastle 2014-05-20 19:12:29 +02:00
Daniel Martí
dd60f5cd3b Re-add nanohttpd, from upstream this time 2014-05-20 18:54:06 +02:00
Daniel Martí
b7feebddf9 Also use jmdns like a java library in ant 2014-05-20 18:52:19 +02:00
Daniel Martí
319e1faf3b Add zipsigner as a submodule 2014-05-20 18:22:24 +02:00
Daniel Martí
4d44f3fce8 Build support-v4 from source with gradle
v7-appcompat can be enabled/used in gradle by changing :support-v4 with
:support-appcompat-v7 in build.gradle and bumping minSdk from 5 to 7
2014-05-19 11:56:45 +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í
c7e1d4af7e Switch AP to our gitlab mirror
gitlab.doeg.gy has been down for a while
2014-05-14 18:56:03 +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
Hans-Christoph Steiner
db0b106656 nanohttpd submodule for supporting local HTTP repos
This webserver is the core of the kerplapp swap local repo when used over
IP connections (WiFi).  It is the smallest Java webserver we could find. It
is included as a git submodule, but then only the actual source files that
are needed are included.  They are symlinked in src/.

The git repo used is the one that we submitted upstream as a pull request.
The pull request contains changes required to support https://.  It has not
yet been accepted, so we cannot yet use the official repo.  Once the pull
request is included, this should be switched to the latest release in the
official git repo.

https://github.com/eighthave/nanohttpd
https://github.com/NanoHttpd/nanohttpd/pull/107

refs #3204 https://dev.guardianproject.info/issues/3204
2014-05-06 11:55:51 -04:00
Dominik Schürmann
588e22462b Merge branch 'master' into super-fdroid 2014-04-27 20:52:58 +02:00
Daniel Martí
e80b1e03ac AP moved to gitlab + build.gradle typo fix 2014-04-27 20:36:55 +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í
967174b549 Finally get UIL working as a gradle library
The problem were the dashes in the path 'extern/Universal-Image-Loader'
2014-02-14 10:34:36 +01:00
Daniel Martí
a666b53ace Add ignore=dirty to submodules 2014-01-08 23:44:44 +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í
3f9ed656de Update build instructions 2013-09-23 20:32:55 +02: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