998 Commits

Author SHA1 Message Date
Daniel Martí
2d3c333b21 AndroidPinning uses a weird target, force android-17 2014-01-08 23:55:16 +01:00
Daniel Martí
1c988a0b5a DBHelper refactor fix: re-add version column 2014-01-08 23:54:59 +01:00
Daniel Martí
a666b53ace Add ignore=dirty to submodules 2014-01-08 23:44:44 +01:00
Daniel Martí
30140d7a3b Indenting fixes 2014-01-08 23:23:32 +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í
5f22877e1c Merge branch 'master' into development 2014-01-08 15:06:29 +01:00
Daniel Martí
5b4c40fe07 Log the icons dir for the device density 2014-01-08 15:05:36 +01:00
Daniel Martí
7279dfacac ViewHolder classes are now private 2014-01-08 14:59:07 +01:00
Daniel Martí
ff9620caf5 Add build.properties with the same encoding as gradle 2014-01-08 14:18:04 +01:00
Daniel Martí
dc5dd51462 Specify UTF-8 in build.gradle 2014-01-08 14:14:43 +01:00
Daniel Martí
499c9e50c5 Move "https://" addrepo default into a string 2014-01-08 13:36:45 +01:00
Daniel Martí
3f19888b11 res/drawable/btn_check_*.png are no longer used 2014-01-08 13:32:51 +01:00
Daniel Martí
fe0fe0e6a2 Merge branch 'master' into development 2014-01-08 13:14:59 +01:00
Daniel Martí
3aed80d94b Fix: Don't show "1.0" when sdkLevel is not known yet 2014-01-08 13:14:20 +01:00
Daniel Martí
ac739de345 Run fix-ellipsis for the first time 2014-01-08 13:09:53 +01:00
Daniel Martí
648f23e15a Add fix-ellipsis script 2014-01-08 13:09:41 +01:00
Daniel Martí
03dc389f85 Update change-package-name.sh 2014-01-08 13:06:53 +01:00
Daniel Martí
91cf8c9472 Add lint.xml with ignores for MissingTranslation 2014-01-08 13:04:00 +01:00
Daniel Martí
8411dd4f9c Use the same DateFormat for the DB and XML parsing, English locale 2014-01-08 12:55:48 +01:00
Daniel Martí
fe41108ed6 Always use Locale.ENGLISH for hashes/fingerprints 2014-01-08 11:58:26 +01:00
Daniel Martí
98d574afbf Switch was added in the sdk level 14, not 11 2014-01-08 11:39:26 +01:00
Daniel Martí
c274752477 Actually use the compat class in ClipboardCompat and SwitchCompat 2014-01-08 11:29:03 +01:00
Daniel Martí
f1c7846605 Refactor cpuAbis to compat/SupportedArchitectures
Changes:

* Use HashSet instead of ArrayList
* Print all the abis on Log.d instead of just the first one
* Get rid of lintian warnings
2014-01-08 11:21:35 +01:00
Daniel Martí
61ba6d52d0 Change # for Number in @string/repo_num_apps 2014-01-08 10:38:19 +01:00
Daniel Martí
5296bf1477 Remove *.orig files 2014-01-08 10:36:39 +01:00
Daniel Martí
943253084b Use a ViewHolder for the ApkList too 2014-01-08 10:35:30 +01:00
Daniel Martí
b4a51c4a91 Merge branch 'master' into development 2014-01-08 09:50:04 +01:00
Daniel Martí
4edd90d7aa Remove translations of removed strings 2014-01-08 09:49:29 +01:00
Daniel Martí
abc3631b16 Merge branch 'master' into development 2014-01-07 23:57:25 +01:00
Daniel Martí
837683217b Release 0.57-test 0.57-test 2014-01-07 23:49:23 +01:00
Daniel Martí
db01c9c476 Merge branch 'master' into development 2014-01-07 23:36:38 +01:00
Daniel Martí
d3686de3cd Support /icons-* per-density icon folders (repo version 11) 2014-01-07 18:23:26 +01:00
Daniel Martí
9709b4f51c No need to use String.format explicitly 2014-01-07 17:50:36 +01:00
Daniel Martí
3d66f7f311 Pull UIL from master again 2014-01-07 17:45:57 +01:00
Ciaran Gultnieks
a2fb86f518 Remove bogus translations 2014-01-07 16:28:10 +00:00
F-Droid Translatebot
34211bb1b7 Translation updates 2014-01-07 16:13:48 +00:00
Daniel Martí
72c2a6a942 README fix; Plain SVG doesn't fix possible rendering issues 2014-01-07 09:37:58 +01:00
Daniel Martí
9e30d442e1 Add README specifying that the svg files are from inkscape 2014-01-07 09:13:00 +01:00
Daniel Martí
e8337aad30 Revert "getApps(): Start Map size with the number of apps we have"
This reverts commit 21747dcf408bef108187588c5ba8b8d72c4b34dc.
2014-01-07 08:55:32 +01:00
Peter Serwylo
c1ccdcfca8 Merge branch 'master' into development
Conflicts:
	src/org/fdroid/fdroid/DB.java
	src/org/fdroid/fdroid/FDroid.java
	src/org/fdroid/fdroid/RepoXMLHandler.java
2014-01-06 15:05:37 +11:00
Peter Serwylo
a6379a8006 Oops, removed files accidentally added with 'git add .' 2014-01-06 11:45:16 +11:00
Peter Serwylo
1bed5ff87c Removed update repo from AB. Fix for new installs with repo version. 2014-01-06 11:17:25 +11:00
Peter Serwylo
5591104c21 Refactored DBHelper out of DB class.
This will be required for ContentProviders, because the need
SQLiteOpenHelpers (or whatever they are called) in order to work,
and having it as a subclass of DB wouldn't quite work for that.
db-version/35
2014-01-05 20:11:54 +11:00
Peter Serwylo
66cde1d88b Fix bug causing incorrect repos to silently be enabled. 2014-01-05 19:41:07 +11:00
Peter Serwylo
d80f2d58ad Merge branch 'development' into experimental/refactor-update
Conflicts:
	src/org/fdroid/fdroid/RepoXMLHandler.java
	src/org/fdroid/fdroid/Utils.java
2014-01-05 19:22:30 +11:00
Peter Serwylo
b863802479 Merge branch 'master' into experimental/refactor-update 2014-01-05 09:54:42 +11:00
Peter Serwylo
70576c72be Reinsted accidentally removed code. Removed refresh repos action item. 2014-01-05 09:35:50 +11:00
Peter Serwylo
783d6aa4d1 Minor fix after conflict resolution. 2014-01-04 21:30:09 +11:00
Peter Serwylo
3731ed8f23 Merge remote-tracking branch 'upstream/master' into improvement/16/manage-repos
Conflicts:
	res/values/strings.xml
	src/org/fdroid/fdroid/DB.java
	src/org/fdroid/fdroid/ManageRepo.java
	src/org/fdroid/fdroid/RepoXMLHandler.java
	src/org/fdroid/fdroid/Utils.java
2014-01-04 20:45:52 +11:00
Peter Serwylo
ffa2c962dc Merge branch 'master' into improvement/16/manage-repos
Conflicts:
	res/layout/appdetails.xml
	res/values/strings.xml
	src/org/fdroid/fdroid/DB.java
	src/org/fdroid/fdroid/FDroid.java
	src/org/fdroid/fdroid/ManageRepo.java
2014-01-04 20:19:27 +11:00