We have moved to a new Sailfish OS Forum. Please start new discussions there.
374

Bluetooth file transfer for all file types [answered]

asked 2013-12-25 16:24:09 +0300

pnuu gravatar image

updated 2014-01-10 19:01:36 +0300

lk gravatar image

Currently it's possible to send images, videos and contacts, but not music files, via bluetooth. More generalized file transfer should be added, atleast to Settings -> System settings -> Bluetooth -> pulley menu -> "Send file", and naturally the file browser.

edit retag flag offensive reopen delete

The question has been closed for the following reason "the question is answered, an answer was accepted" by olf
close date 2019-10-19 18:21:32.818752

Comments

15

This is important. A deal breaker if not fixed, imo

Glenn9K ( 2013-12-25 20:36:56 +0300 )edit
15

Yes, definitely this is important!

LaruX ( 2013-12-26 14:53:49 +0300 )edit
3

Not high priority at the moment in my opinion. But something I hope to have in the future. Enjoyed it a lot that I could send and receive everything with Nokia N9. Pully menu with "Send file" is a very good idea and would enrich the idea of the Pully menu a lot.

molan ( 2014-01-07 19:31:36 +0300 )edit
11

It would be nice to have it in File Browser.

SaimenSays ( 2014-03-01 21:09:02 +0300 )edit
5

It should be a have to be in the MediaPlayer analog to Galerie

michaelmischke ( 2014-04-19 00:05:51 +0300 )edit

15 Answers

Sort by » oldest newest most voted
6

answered 2016-10-27 15:01:38 +0300

jovirkku gravatar image

A partial fix for this issue was delivered in update 2.0.4. We know that it is still not possible to share all file types (but most of them), including .html, .qml, .log, .json and files lacking an extension. However, it is possible to share json and log files, for instance, by adding the extension .txt to them. Investigations are carried on. Hopefully this issue can be fixed completely.

edit flag offensive delete publish link more

Comments

2

Thanks for the official statement. I'm actually wandering why the filetype is an issue at all... usually I can transfer any file if I , for example, add the extension .jpg or any other supported extension. So the file is not getting analyzed...

PatsJolla ( 2016-10-27 15:18:26 +0300 )edit
1

@jovirkku Unfortunately Sailfish OS also does not support multiple file transfer since there is no option to select more than one file in the file browser.

Alex ( 2016-12-27 18:39:31 +0300 )edit
2

@jovirkku, sorry to say your answer sounds awkward in October 2019:

  • This question was asked in December 2013, has received 367 up-votes (October 2019) and many emotional comments.
  • The former SailfishOS' Bluetooth-maintainer @hmallat provided proper reasons to filter for supported MIME-types (and in his subsequent comments there) in September 2014.
  • He also provided a rough description of a workaround in the aforementioned thread in October 2014 and again in the first comment to this question in June 2015, which was the base for a little how-to for beginners.
  • Still you state in October 2016, "Investigations are carried on. Hopefully this issue can be fixed completely."

This sounds as if a clear, rather political choice should be made by Jolla (as the technical aspects have been sufficiently discussed) between these three options:

  1. Keep the status quo, but clearly state that Bluetooth file transfers (per OBEX) support only registered MIME-types for adhering to the specification(s) of that BT-SIG.
  2. Cease to interpret these statements in the OBEX specification(s) as mandatory and eliminate the deliberate filtering for supported (i.e., registered) MIME-types.
  3. Implement a new setting (e.g., "Allow all file types" in Settings -> Bluetooth), which defaults to off to provision SailfishOS in a compliant state.

Taking any of these options is better than leaving this issue open and undecided / without uttering a decision, IMO.


P.S.: The relevant Bluetooth specifications are the OBEX aka IrDA Interoperability (IrOBEX) (v2.0, 26 Aug 2010), the Generic Object Exchange Profile (GOEP) (v2.1.1, 15 Dec 2015) and the Object Public Profile (OPP) (v1.2.1, 15 Dec 2015) specification (the latter does not seem to be publicly available, only the aspects essential for implementing the OPP are).

olf ( 2019-10-02 01:02:30 +0300 )edit
7

answered 2017-12-12 18:41:05 +0300

olf gravatar image

updated 2019-10-09 04:42:50 +0300

Still not able to send or receive any (i.e., arbitrary) file type via Bluetooth (under SFOS 2.1.3.7, four years after this issue has been originally addressed)!
E.g., file types rpm, xml, tar, gz and many more fail to be transferred.

Even worse is that SailfishOS does not mention the real reason (which is "unsupported file type"), but displays exactly the same error message which occurs when there is a Bluetooth connection error ("Oops, uploading did not work!") on the sender's side. Furthermore connection errors often occur when trying to transfer larger files (> 1 MB).
Hence it is impossible for the user to distinguish an unsupported file type error from a real Bluetooth connection error.

Please ultimately fix the file type limitations by allowing any file type to be transferred via Bluetooth.

P.S.: Yes, I know how to workaround this by appending a supported extension to the file I am going to transfer. But I regularly forget and this is really awkward for a Smartphone!

P.P.S. / Edit (2019-10-09):
The proper, generic and permanent solution is to eliminate any file type filtering for Bluetooth file transfers.

edit flag offensive delete publish link more
12

answered 2018-11-10 04:11:36 +0300

olf gravatar image

updated 2019-10-09 04:46:49 +0300

Table of contents


Sending files per OBEX

(the original question)

Any filtering for "supported" file or MIME types seems to be done by an application (or a high-level application framework it uses, e.g. Qt), but not by the OBEX implementation (per obexd in bluez 4 and 5).
Hence complaints about specific apps limiting the types of files to share via Bluetooth should be filed a separate issues for these apps, IMO.

The awkward mini-filemanager in Settings -> Storage -> Mass memory -> [Top pulley] File manager seems to share any file via Bluetooth in recent SailfishOS versions, as Filecase (unmaintained, does not start up without patching since SailfishOS 2.2.0) definitely did on older SailfishOS versions.
You might file a feature request for your favorite file-manager to support unrestricted sharing of files via Bluetooth.


Sending multiple files via Bluetooth


As the OBEX (aka "IrDA compatibility") specification only supports sending one file at a time, selecting multiple files and sending them one-by-one also has to be implemented on application (or framework) level. No SailfishOS app provides this feature yet, AFAIK.
You might file a feature request for your favorite file-manager to support this, too.


Receiving arbitrary files


Edit / update (2019-10-03)


As this enduring situation is annoying, I created obexd-contentfilter-off, which automatically does what is described in the original answer (2018-11-10) below.
For easy installation (e.g., per Storeman), an RPM is available at OpenRepos.
As obexd-contentfilter-off obsoletes the original obexd-contentfilter-helper package, the need to check if the "dummy" obexd-contentfilter-helperapp script is still installed after a SailfishOS upgrade is also eliminated (compared to the manual deployment of the "dummy script" described in the original answer (2018-11-10) below).

Side note
While researching this issue in-depth, it became apparent that Jolla's position is understandable: It would be hard to sell SailfishOS licenses to companies and governments, if the Bluetooth software stack behaves non-compliant to the Bluetooth OBEX specifications.
Still I wish Jolla will enable users to switch the OBEX filter off at the GUI, some day.


Original answer (2018-11-10)


Oh, I completely forgot, that this was answered by @hmallat in a comment to my very first question on TJC (and also in his comment to another question).

Applying these five commands prevents any filtering for Bluetooth file transfers:

devel-su  # Become root
cd /usr/libexec
mv -v obexd-contentfilter-helperapp obexd-contentfilter-helperapp.orig  # Backup & delete by renaming
echo -e "#!/bin/sh\n\nexit 0" > obexd-contentfilter-helperapp  # Create a dummy helperapp, always returning O.K.
chmod +x obexd-contentfilter-helperapp  # Make it executable


Still, IMO Jolla should stop filtering for supported file types when receiving via BT file transfer in SailfishOS per default or offer a setting to disable this filter.

The current behavior ("Oops, uploading did not work!" on the sender's side) appears to be a non-functional Bluetooth file transfer (when trying to transfer an "unsupported" kind of file), because there is no indication why the BT file transfer went wrong!


Side notes

  • A functional (i.e., filtering) obexd-contentfilter-helperapp file may be reinstalled when upgrading SailfishOS.
    Repeat above commands, then.
  • Mind that Bluetooth file transfers may still fail for other reasons, most often due to Bluez instabilities (especially on Jolla 1 phones, still provided with Bluez4 by default).
edit flag offensive delete publish link more

Comments

2

awesome share man, could have done with this info for years. Giving it a try right now.

DameCENO ( 2018-11-13 15:01:08 +0300 )edit

Great that we have a community-supported answer, but I agree it should be an option under Settings-->Bluetooth, not a CLI hack.

sunburnedpenguin ( 2019-10-01 09:42:31 +0300 )edit
1

Wow, 5 years since the original question and still Jolla has their fingers wedged firmly up their arses - no wonder people get fed up and leave. Such a simple function, yet this bunch can't seem to get it together, "Couldn't hold a piss up in a brewery!" springs to mind

Spam Hunter ( 2019-10-01 11:32:14 +0300 )edit
4

answered 2019-09-30 23:41:19 +0300

just bumping up

as when switching devices or after reset (yep, had to do it after failed update once) I do like to transfer a lot of differen items

and we are 5 (FIVE) years later!

edit flag offensive delete publish link more

Comments

2

The answer and solution are already here (in this very TJC thread)!
See my comment 2018-11-13 to the original question for an explanation and the link there for a solution.

olf ( 2019-10-01 01:09:01 +0300 )edit
1

Thanks olf. I did know/re-read about this workaround. But after "downgrading" to XA2 I just forgot to apply that.

My personal patches folder is growing and growing ...

Just found accidentally this answer of you from Dec 2017 https://together.jolla.com/question/1302/bluetooth-file-transfer-for-all-file-types/?answer=175986#post-id-175986 and this is still valid, right?

(I do hate this time cluttered comment/answer game - okay, must have had a different sort configured! :) )

peterleinchen ( 2019-10-01 09:33:03 +0300 )edit
4

Great that we have a community-supported answer, but I agree it should be an option under Settings-->Bluetooth, not a CLI hack.

sunburnedpenguin ( 2019-10-01 09:41:08 +0300 )edit
1

@peterleinchen, there seems to be some confusion navigating this thread, as you wrote:

"Just found accidentally this answer of you from Dec 2017 [...]"

... which details the complaints on the technical side, but does not solve anything.

That is why I tried to direct you to my comment 2018-11-13 (currently the last one at the original question) and the real answer (with solution), which I provided 2018-11-10 (and I linked to in yesterdays comment above and my comment 2018-11-13 to the original question; recognising and using these web-links seems to be hard, thus this comment is without any ;\ ).

olf ( 2019-10-01 16:10:41 +0300 )edit
4

answered 2019-10-06 22:55:51 +0300

deloptes gravatar image

Hi, I will up vote this in the hope that we get our voice heard.

In fact looking some time ago into the BT stack implementation it was clear that only OPP is implemented, while file transfer is not, because it needs all the things mentioned in the answers API, integrated APP etc.

I was even thinking I would find some time to write the server part, but not likely before next year. If someone is willing to share burden let me know. However, I mentioned already before on the dev list. Jolla needs to set the path in such a work (API), so that we work in unified manner.

sdptool search FTP <BT MAC>
Inquiring ...
Searching for FTP on <BT MAC> ...

sdptool search OPUSH <BT MAC>
Inquiring ...
Searching for OPUSH on <BT MAC> ...
Service Name: Object Push
Service RecHandle: 0x10007
Service Class ID List:
  "OBEX Object Push" (0x1105)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
     Channel: 9
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX Object Push" (0x1105)
    Version: 0x0102

You can have a look in the obexd - I do not recall, but I think FTP is enabled.

edit flag offensive delete publish link more

Comments

@deloptes,

  • for interoperability, it makes sense to focus on using "OBEX Object Push", as that is what almost all devices with Bluetooth support (Smartphones, Feature Phones, PCs etc.).
  • "OBEX Object Push" is also what Jolla's mini-filemanager (in Settings -> Storage -> Mass memory -> [Top pulley] File manager), Filecase and Jolla's Gallery app use.
    While Filecase's source code does not seem to be available and I have not looked for the sources of the two Jolla apps, what they do when sending a file via Bluetooth may be observed per strace and / or other means, in order to re-implement that in an app of your choice.
olf ( 2019-10-07 17:41:01 +0300 )edit

I don't know file case, but I know about the protocols. The missing features are all covered by the FTP. I do not know why it disappeared in Sailfish. It was there in N9 AFAIK.

OOP is simple to implement, but very limited - for example you can not specify destination and you can do only one file a time.

Also I do not feel like reverse engineering apps. There is a good bluetooth documentation of the interfaces and implementation of FTP server wouldn't be much of a work. The integration part might be however.

deloptes ( 2019-10-07 20:33:46 +0300 )edit

Question tools

Follow
34 followers

Stats

Asked: 2013-12-25 16:24:09 +0300

Seen: 9,829 times

Last updated: Oct 09 '19