Coder Social home page Coder Social logo

psanford / wormhole-william-mobile Goto Github PK

View Code? Open in Web Editor NEW
151.0 10.0 15.0 1.31 MB

End-to-end encrypted file transfer for Android and iOS. A Magic Wormhole Mobile client.

License: MIT License

Makefile 1.57% Go 74.09% Java 22.87% Nix 1.47%
wormhole android go golang encryption end-to-end-encryption ios mobile

wormhole-william-mobile's Introduction

wormhole-william-mobile

This is a Magic Wormhole client for Android and iOS.

Some current limitations:

  • Receiving directories are kept in zip form.
  • Send only supports sending a single file.

Installing the APK on Android

Available from the Play store: https://play.google.com/store/apps/details?id=io.sanford.wormhole_william

Prebuilt APKs are provided with each release. You can install this to an android device that has developer mode enabled by running:

apk install wormhole-william.release.apk

Building for Android

In order to build this you will need a local install of the android SDK. Set the environment variable ANDROID_SDK_ROOT AND ANDROID_ROOT to the path of the android SDK. Currently this project is hard coded to use platform android-30 (in the make file), so you will need to have that installed (or edit the make file for whatever you have). You will also need a modern version of Go. Probably >= 1.16.

Run make and see what happens!

This project uses https://gioui.org/ for its UI. It uses https://github.com/psanford/wormhole-william for the underlying wormhole implementation.

iOS

Currently iOS development is happening on the ios branch.

Video Demo

This demo was done as part of a larger talk on the development of Wormhole William Mobile and its use of Gio:

Wormhole William Mobile Demo

Screenshots

Receive 1

Receive 2

Send Text 1

Send Text 2

Send File

wormhole-william-mobile's People

Contributors

psanford avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wormhole-william-mobile's Issues

Add settings tab

We should allow you to configure:

  • the rendezvous server
  • the default code length

Corrupt sends with v1.0.4

I was trying to use this Android tool to send a file to my Linux laptop and I'm pretty sure it's corrupting the transfer.

I have a 2,693,769 byte binary file (tgz file) that on the other side of the wormhole ends up with an extra 375 bytes of seeming garbage at the end. I tried slicing that suffix off and passing it to the Linux "file" command and it doesn't have a detected structure.

I'm wondering if there's a uninitialized buffer read or incorrectly sized buffer involved?

Crashes upon picking file

I'm running the app in Graphene OS (Android 12). The app opens fine, but crashes immediately when I try to choose a file. It also didn't request any permissions, not that it matters. It still crashes the same even if I give it all the permissions available. Any way I could debug this further?

Receive location?

Where was my received file saved to? It wasn't in downloads, and browsing around I couldn't find it. If you're not going to put it in Downloads, it would be great if a configuration option was available to specify the download location.
Otherwise, great app!

Add app as a share target

Thank you for making the app, very cool!

It would be lovely to have the app as a share target. So, you can for example share an image from a reddit app or the files app straight into this to send to another device without having to open it and browse to the file manually.

Crashes on receipt of files with "invalid" characters

Firstly: wonderful tool—thank you!

I ran into an issue wherein the Android (Pixel 2 XL, Android 11) app. will crash when receiving a file with a : in the filename.

  • using magic-wormhole==0.12.0 on a Linux machine.
  • run wormhole send <filename_with_colon> and copy the code.
  • enter code into the Android app. and acknowledge receipt.
  • download progresses for the full duration but the app. crashes (no errors, just closes) on completion.

My assumption is that it's something to do with the restricted range of characters on the Android end.

Removing the : from the filename and retrying fixes the issue and it can be received without issue.

text entry nodes not support selection v1.0.8

v1.0.8 installed 2023-03-05 from Google play store does not support text selection. Can use finger to select cursor position and the delete characters one-by-one.

Minor UI annoyance.

Version 1.0.7 crashes on startup on Android

I've reported this issue also using "send feedback" on my Android phone. It's a Sony Xperia F5321 phone with Android 8.0.0. Version 1.0.6 works, but 1.0.7 crashes as soon as you launch it. I will try to send the "adb logcat" output once I figure out how to do that.

Can't write files after receiving

Every time I receive a transferred file the app crashes and I see the following error in the logs:

java.lang.SecurityException: Unsupported path /storage/emulated/0/Download/<redacted filename>

Environment: v1.0.3 from the GitHub release on LineageOS 17.1 (Android 10) on a Sony Xperia XZ1C

I've also seen the app crash in the same way on a Pixel 2 running stock Android 10 but can't check the logs to verify it's the same crash (but it looks like it).

On both devices the app didn't ask for any permissions. Newer Android versions have locked down writing to the SD card more tightly so the app might need to request the storage permission in order to work. See https://developer.android.com/training/data-storage

Unable to type in receive codes

All of the text input fields in the app seem to break when I try to input a string matching [0-9]+-[a-z]+. For instance, if i start typing 1-a, the a never appears in the text box, all I can type is 1-. This is obviously especially problematic for the recv code field, but the send text field has the same issue.

I'm using version 1.0.8 on a Pixel 3a running LineageOS 18.1.

REQ: Render QR code for sharing

Wormhole William mobile can scan a QR code to receive a file; the complimentary function is to render a QR code for a share that another instance of Wormhole William can scan to receive.

ios and desktops

any plans to extend support of the File Picker ?

I think i saw somewhere talk of a file reader package as part of GIO x repo happening, but not sure.

Would be cool if this file transfer tool worked on other Os's

App is not accessible for screen readers

Currently the application is inaccessible to screen readers like TalkBack.

I believe this is a current limitation with Gio. I'll check with them on where accessibility features fall on their roadmap.

use regular text box for receive code and allow spaces instead of dashes

I think two small changes would greatly improve usability of receiving files:

  1. Make the code field a regular text box to allow swipe-typing and autocomplete. The words are all dictionary words, so this would greatly speed up entry. Even if making the change would get rid of the number bar, I think it would still be a net improvement since there's only one digit but two full words to type in the default codes.
  2. Allow typing spaces instead of dashes, and just replace spaces by dashes before using the code. Typing a space is much easier than a dash on the android keyboard (in fact with swipe-typing you don't even need to explicitly type a space), and there's no reason to strictly require dashes.

improvement requests

only small things,

  • settings for timeout
  • re-enabling button "Receive" after not found timeout
  • not clearing upon failed receive's code, so user can easly fix typo

thank you

Receive file broken on pixel 8 / Android 14

Receiving a file isn't working on a new pixel 8 but it is working on an older device. On my pixel 8 I'm not getting the permission prompt for write file access. I wonder if the old permission was grandfathered in from old installs?

I'll investigate some more when I'm at a computer with the Android SDK on it.

Support verification codes

This is something that someone could want. We should probably support this. Maybe a checkbox on the send and recv pages?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.