Task #1939

automatically detect and sync to ChatSecure

Added by hans over 4 years ago. Updated about 4 years ago.

Status:ClosedStart date:09/24/2013
Priority:NormalDue date:
Assignee:hans% Done:

0%

Category:-
Target version:0.2
Component:

Description

In order to make the ChatSecure syncing automatic, KeySync needs to detect MTP mounts, which are the way that Android 4.x devices present themselves to the OS. Then when it detects an MTP mount, it should automatically copy the ChatSecure otr_keystore.ofcaes file into place there.


Related issues

Related to PSST - Feature #468: 1.1 Expand reach, simplify chain of tools, linking into t... New 04/01/2013 09/30/2013
Related to SyncSafe - Feature #479: 1.3.1. Integrate support for GPG and OTR key syncing New 06/01/2013 06/30/2013
Related to PSST - Feature #478: 1.3 Continued SpotSync, IOCipher Development Closed 08/01/2013 08/31/2013
Related to KeySync - Task #2000: (Mac OS X) detect if Android File Transfer is running and... Closed 10/04/2013
Related to KeySync - Task #2126: automatically detect and copy otr_keystore.ofcaes to Andr... New 10/18/2013

Associated revisions

Revision 5b2ca74f
Added by Hans-Christoph Steiner over 4 years ago

chatsecure: functions for detecting and copying to MTP mounts

This current functionality relies on GNOME's gvfs to mount the MTP device,
which is does automatically by default when an MTP device is plugged in.
For other OSes and GNU/Linux that doesn't use gvfs, a different approach is
required.

refs #1939

Revision 5b2ca74f
Added by Hans-Christoph Steiner over 4 years ago

chatsecure: functions for detecting and copying to MTP mounts

This current functionality relies on GNOME's gvfs to mount the MTP device,
which is does automatically by default when an MTP device is plugged in.
For other OSes and GNU/Linux that doesn't use gvfs, a different approach is
required.

refs #1939

Revision c1e11c58
Added by Hans-Christoph Steiner over 4 years ago

make simple copy function that plays nice with MTP

This is simple like shutil.copy(), but doesn't try to set perms or file
times, since MTP can be more limited.

refs #1939

Revision c1e11c58
Added by Hans-Christoph Steiner over 4 years ago

make simple copy function that plays nice with MTP

This is simple like shutil.copy(), but doesn't try to set perms or file
times, since MTP can be more limited.

refs #1939

Revision aa183110
Added by Hans-Christoph Steiner over 4 years ago

make function to easily make backups of conffiles, for safe replacement

In order for KeySync to automatically sync, it needs to overwrite an app's
conf files. This function can be run before overwriting any conf file so
that there is always a backup.

refs #1939

Revision aa183110
Added by Hans-Christoph Steiner over 4 years ago

make function to easily make backups of conffiles, for safe replacement

In order for KeySync to automatically sync, it needs to overwrite an app's
conf files. This function can be run before overwriting any conf file so
that there is always a backup.

refs #1939

Revision 100f78d7
Added by Hans-Christoph Steiner over 4 years ago

implement MTP detection and syncing for Mac OS X, which has no MTP support

pymtp/libmtp provide the MTP support, we also have to think about Google's
Android File Transfer app, since its also a libmtp app, and it will
conflict with KeySync.

refs #1939, #1967, #1968, #1870

Revision 100f78d7
Added by Hans-Christoph Steiner over 4 years ago

implement MTP detection and syncing for Mac OS X, which has no MTP support

pymtp/libmtp provide the MTP support, we also have to think about Google's
Android File Transfer app, since its also a libmtp app, and it will
conflict with KeySync.

refs #1939, #1967, #1968, #1870

Revision a378be60
Added by Hans-Christoph Steiner over 4 years ago

keysync-gui: constantly check whether the Android device is available

This allows the GUI to represent the available actions based on whether
the Android device is currently attached or not. It also provides clear
feedback when the user plugs the Android device in (the GUI changes).

refs #1939, #1967, #1968

Revision a378be60
Added by Hans-Christoph Steiner over 4 years ago

keysync-gui: constantly check whether the Android device is available

This allows the GUI to represent the available actions based on whether
the Android device is currently attached or not. It also provides clear
feedback when the user plugs the Android device in (the GUI changes).

refs #1939, #1967, #1968

Revision b3728672
Added by Hans-Christoph Steiner over 4 years ago

keysync-gui: detect if pymtp is available, and use it if its there

Before, pymtp was only used on Mac OS X, which has no MTP support. But it
turns out to be useful on GNU/Linux as well. Sometimes gvfs FUSE mounting
fails to be available, but then the MTP send_file_from_file still works.

refs #1939

Revision d73aa120
Added by Hans-Christoph Steiner over 4 years ago

support pymtp v0.0.6, which has essential bug fixes

refs #1939

Revision b3728672
Added by Hans-Christoph Steiner over 4 years ago

keysync-gui: detect if pymtp is available, and use it if its there

Before, pymtp was only used on Mac OS X, which has no MTP support. But it
turns out to be useful on GNU/Linux as well. Sometimes gvfs FUSE mounting
fails to be available, but then the MTP send_file_from_file still works.

refs #1939

Revision d73aa120
Added by Hans-Christoph Steiner over 4 years ago

support pymtp v0.0.6, which has essential bug fixes

refs #1939

History

#1 Updated by hans over 4 years ago

  • Subject changed from detect Android device via MTP mount, and copy otr_keystore.ofcaes to it to automatically detect and sync to ChatSecure

#2 Updated by hans over 4 years ago

This now works on GNOME via GNOME's gvfs, which automatically mounts MTP devices to ~/.gvfs/mtp. For Mac OS X, there is no MTP support until Mac OS X 10.8 (anyone know how it works?). For 10.6 and 10.7, we can use libmtp. The good news is that the official Google Android File Transfer app for Mac OS X uses libmtp, the bad news is its a pain to build on Mac OS X. Then we can use pymtp in keysync, its a ctypes wrapper of libmtp.

For Windows, we might need to use something like wmdlib but libmtp might work on Windows too.

#3 Updated by hans about 4 years ago

  • Target version set to 0.2

#4 Updated by hans about 4 years ago

  • Status changed from In Progress to Closed
  • Assignee set to hans

This is working for GNU/Linux and Mac OS X, and we have a temp workaround for Windows, so I'm closing this one. There is a separate ticket to complete the Windows support.

Also available in: Atom PDF