548 Commits

Author SHA1 Message Date
Hans-Christoph Steiner
2c88703588 use NetCipher to get improved TLS and cipher support on HTTPS connections
The NetCipher library creates instances of HttpURLConnection that are
configured to have solid TLS protocol and cipher settings, especially on
older versions of Android.

fixes #370 https://gitlab.com/fdroid/fdroidclient/issues/370
2015-09-08 19:19:30 +02:00
Hans-Christoph Steiner
1f607d3e6d improve net check for index updates; update index on app start
This remove the magic number "1" from the network state check, and makes
explicit that it is checking the active network connection.

This is then used to check whether it is appropriate to update the index
when FDroid first starts.
2015-09-08 19:19:29 +02:00
Dominik Schürmann
1fd85f40e7 Install privileged methods 2015-09-07 01:40:37 +02:00
Dominik Schürmann
5bfc30651a Refactor, allow installPrivileged from apk path 2015-09-07 01:40:37 +02:00
Dominik Schürmann
57af421561 Check if PrivilegedInstaller is available, adapt InstallPrivileged 2015-09-07 01:38:49 +02:00
Dominik Schürmann
85c8e7035d Move shared AIDL files into lib, restructure, start of install/delete code 2015-09-07 01:38:48 +02:00
Dominik Schürmann
e87693d989 Add Privileged F-Droid project 2015-09-07 01:37:07 +02:00
Dominik Schürmann
d530a1cf56 Restructure installer packages 2015-09-07 01:37:06 +02:00
Daniel Martí
9e85911b5d StrictMode fix: close cached keystore file 2015-09-05 23:45:45 -04:00
Daniel Martí
cb9290fb89 Detect all VM policy penalties 2015-09-05 23:35:39 -04:00
Daniel Martí
8b7eba6698 StrictMode fix: close streams in local repo assets 2015-09-05 23:31:19 -04:00
Daniel Martí
bd1db5412b Add StrictMode to the entire app, fixes #399
Only enabled on debug builds. With only logs for now, we can move on to more
annoying penalties like dialogs or crashes once we have solved all of them.
2015-09-05 23:30:59 -04:00
Daniel Martí
6214b7f659 Merge branch 'issue-395' 2015-09-05 22:16:15 -04:00
Peter Serwylo
3213fd2ba1 Merge branch 'new-swap' 2015-09-06 08:37:26 +10:00
Daniel Martí
10171d9228 Installer: handle package parse errors, fixes #395 2015-09-03 18:52:40 -07:00
Daniel Martí
74c93907c5 Don't call onAppChanged() if install was cancelled
It should have not changed anything about the app. It should make AppDetails
update anything as needed just like returning from any other activity.
2015-09-03 18:49:31 -07:00
Daniel Martí
c43505befb Fix tests by making a method explicitly protected
This was making proguard complain and refuse to continue. This fix should not
alter how F-Droid works, it's just to make the tests function with proguard
enabled.
2015-09-02 16:10:06 -07:00
Peter Serwylo
f635df8502 Merge branch 'master' into new-swap 2015-09-02 17:01:58 +10:00
Hans-Christoph Steiner
303de3d972 temporarily disable broken HTTPS support in swap
Right now, turning on HTTPS really just prevents things from working.  It
is not fully required, since swapping is only local connections, so not
easily susceptible to mass eavesdropping, though it would be nice.  I'm
leaving the rest of the plumbing for this here intact for when we come back
to getting swap always using HTTPS.

closes #378 https://gitlab.com/fdroid/fdroidclient/issues/378
2015-08-27 11:05:36 +02:00
Hans-Christoph Steiner
04e318c9ca force swap X.509 cert generation to use English/Gregorian times
When using locales that use different calendars, like Farsi, Arabic,
Hebrew, etc. there was a crash in spongycastle's X.509 generation because
it was trying to parse a Farsi date string as English.

fixes #334 https://gitlab.com/fdroid/fdroidclient/issues/334

Here's the original stacktrace:
    java.lang.IllegalArgumentException: invalid date string: Unparseable date: "ñõðøòñðóñõõóGMT+00:00" (at offset 0)
            at org.spongycastle.asn1.ASN1UTCTime.<init>(ASN1UTCTime.java:115)
            at org.spongycastle.asn1.DERUTCTime.<init>(DERUTCTime.java:23)
            at org.spongycastle.asn1.x509.Time.<init>(Time.java:67)
            at org.spongycastle.cert.X509v3CertificateBuilder.<init>(X509v3CertificateBuilder.java:40)
            at org.fdroid.fdroid.localrepo.LocalRepoKeyStore.generateSelfSignedCertChain(LocalRepoKeyStore.java:301)
            at org.fdroid.fdroid.localrepo.LocalRepoKeyStore.generateSelfSignedCertChain(LocalRepoKeyStore.java:281)
            at org.fdroid.fdroid.localrepo.LocalRepoKeyStore.<init>(LocalRepoKeyStore.java:136)
            at org.fdroid.fdroid.localrepo.LocalRepoKeyStore.get(LocalRepoKeyStore.java:73)
            at org.fdroid.fdroid.net.WifiStateChangeService$WaitForWifiAsyncTask.doInBackground(WifiStateChangeService.java:124)
            at org.fdroid.fdroid.net.WifiStateChangeService$WaitForWifiAsyncTask.doInBackground(WifiStateChangeService.java:62)
2015-08-27 11:05:35 +02:00
Hans-Christoph Steiner
9e939131b7 Utils.calcFingerprint() should always return null if given null
#334 https://gitlab.com/fdroid/fdroidclient/issues/334
2015-08-27 11:05:35 +02:00
Daniel Martí
bfcd88ebb2 Use activity context in AppDetails, fixes #388 2015-08-25 21:21:35 -07:00
Daniel Martí
ef56f8db88 Revert "Add timeout for Http request" merge
See !117 and #387

This reverts commit e895d1f0d3d6b333eeaa3e82e58392b58d647c33, reversing
changes made to 8d5c7abe89f98d4c8248e0b50eb8857f2a31f049.
2015-08-24 11:02:54 -07:00
Nico Alt
4331fa4047 Revert "Prompt for beta updates"
This reverts commit 92f8678b3d2da18ad93bac6af0ae83984cf74714.
2015-08-22 10:04:42 +02:00
Daniel Martí
478ff88a82 Don't crash if we couldn't generate a certificate
Another crash workaround for #334. Even though this null check should be left
there, since getCertificate() may return null for whatever reason.
2015-08-20 21:14:38 -07:00
Daniel Martí
1f41bbdc0d Replace printStackTrace with proper Log.e calls 2015-08-20 19:28:30 -07:00
Daniel Martí
8669fddd70 Properly log exceptions 2015-08-20 19:21:50 -07:00
Daniel Martí
ce8c928337 Move some Log.i to debug logs
These don't look like they will be useful to users at all.
2015-08-20 19:09:27 -07:00
Daniel Martí
c9cdc1a5dc Remove all Log.d calls from release builds 2015-08-20 18:59:14 -07:00
Daniel Martí
d04f26b6e4 Raise some log message priorities 2015-08-20 18:59:13 -07:00
Daniel Martí
96014a7365 Simplify debugging logging via Utils 2015-08-20 18:37:25 -07:00
Daniel Martí
2d14e3c1c4 Temporarily work-around for repo update crashes
On certain locales, F-Droid would crash at startup due to #334.

This isn't a proper fix, but rather a workaround that logs what happened and
links to the issue, instead of making F-Droid crash entirely.
2015-08-20 17:49:57 -07:00
Daniel Martí
05285d23b7 Replace fdroid.org with f-droid.org 2015-08-20 10:06:01 -07:00
Daniel Martí
e4527da122 Prepare for sdk level 23 2015-08-20 09:56:57 -07:00
Peter Serwylo
133cabeed8 Let user select wifi network. Prevent "Send F-Droid" if no bluetooth.
Include support for libaccesspoint to control the WiFiAP of a device.

Selecting wifi networks i snow possible by touching the name of the
wifi network in the "Start Swap" screen (sometimes it will say
"No network yet"). This exhibits the same behaviour as the "Join Wifi"
screen used to (and still does) do.

On emulators (is there other devices too?), Bluetooth is unavailable,
but the "Send F-Droid" is still there. I could remove it, but then
people may get confused as to why it is not there. Instead, there is
now a dialog which explains why it can't be sent (no Bluetooth).
2015-08-20 21:46:07 +10:00
Daniel Martí
3f5b5ffc93 Avoid package receiver NPE crashes. Fixes #380. 2015-08-19 11:19:59 -07:00
Daniel Martí
780f77dab9 Don't show menu item to enable NFC if not available
Follow-up to #379
2015-08-18 14:16:50 -07:00
Daniel Martí
fd7f942595 Avoid NPE crash on devices without NFC. Fixes #379. 2015-08-18 13:14:13 -07:00
Peter Serwylo
b05080bbd9 Enable "Send F-Droid" in main swap screen. 2015-08-18 19:26:48 +10:00
Peter Serwylo
a82032d5d0 Fixing lint errors in swap WIP branch but not master. 2015-08-17 22:59:51 +10:00
Peter Serwylo
2008708cd9 Change bluetooth response to remove deprecated warning.
The StringBufferInputStream is deprecated, because it doesn't know the
encoding of the string it is buffering. This has been changed to use
a ByteArrayInputStream with UTF-8 encoding now.

Also made use of previously unused mimeType parameter to set the
Content-Type header of the response.
2015-08-17 17:15:42 +10:00
Peter Serwylo
99ebc84a91 Show message when touching the QRCode button, but swap isn't enabled.
Also cleaned up a doc comment in the swap activity, and minor
formatting of swap related strings in strings.xml.
2015-08-17 17:15:08 +10:00
Peter Serwylo
930c906460 Allow bluetooth:// URLs to be parsed by java.net.URL.
Sets a stream handler in FDroidApp which understands bluetooth://
URLs and returns a non-functioning URL handler for such URLs.
The reason it is  non-funcitoning is because the openConnection()
function is not being used by the BluetoothDownloader at this point.

In the absense of this, a MalformedURLException is thrown.

The bluetooth stuff is still broken, but it is not broken in
this way any more.
2015-08-17 08:08:49 +10:00
Peter Serwylo
6bfd76caf2 Search now works when choosing swapped apps to install.
Was incorrectly parsing the URI in order to build a query for the database.
2015-08-17 00:00:30 +10:00
Peter Serwylo
e53a56f7b2 Show "preparing local repo" stuff in activity, not dialog.
Use the same view as when downloading a swap index. This means
no more progress dialogs, and no more Toasts when finished, which
is good.
2015-08-16 23:32:37 +10:00
Peter Serwylo
1ea35f6977 Remove unused AppDetails subclass. Show download progress for swap.
The AppDetails subclass used to be used when you couldn't install apps
directly from the swap workflow. Now we don't send people to app
details, so the activity is unneeded.

The swap progress also now listens for progress broadcasts, rather than
showing an indeterminant progress bar.
2015-08-16 17:29:56 +10:00
Peter Serwylo
2868e3c4f1 Allow apks to be installed from swap. Show feedback while downloading.
Seems to work pretty-alright even when installing multiple apps.
Shows a progress (indeterminent at this stage) bar for each downloading
item, and hides the install button.
2015-08-16 11:31:02 +10:00
Peter Serwylo
d672983a90 Refactor toolbar colours, fix notification for < 4.1 devices.
InnerView.getToolbarColour() was expecting a @ColorRes, except all views
were returning integers which were the colour value, not a pointer to
the resource as they should have been. Now only one place requires a
call to getResources().getColor() whereas before it was in each view.

Notifications on pre 4.1 devices require a pending intent to work. This
is so that when you touch the intent, it takes you somewhere meaningfull.
Without it, the update process crashes.
2015-08-16 08:34:05 +10:00
Daniel Martí
d9ed0ffb0d Merge branch 'installer-patches' 2015-08-15 14:01:03 -07:00
Daniel Martí
0e3172b277 Use mkdir -p instead of mkdir to not error if already existing
See #364
2015-08-12 13:41:13 -07:00