All Projects → ganeshrvel → Openmtp

ganeshrvel / Openmtp

Licence: mit
OpenMTP - Advanced Android File Transfer Application for macOS

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Openmtp

spc
A scp wrapper to manage across multiple remote machines
Stars: ✭ 18 (-98.54%)
Mutual labels:  file-transfer
Zget
Filename based peer to peer file transfer
Stars: ✭ 465 (-62.16%)
Mutual labels:  file-transfer
Zato
ESB, SOA, REST, APIs and Cloud Integrations in Python
Stars: ✭ 889 (-27.66%)
Mutual labels:  file-transfer
messenger
TCP 即时通讯 WPF 界面.
Stars: ✭ 18 (-98.54%)
Mutual labels:  file-transfer
Shoop
scp has a run-in with mosh (alpha)
Stars: ✭ 408 (-66.8%)
Mutual labels:  file-transfer
Airshare
Cross-platform content sharing in a local network
Stars: ✭ 497 (-59.56%)
Mutual labels:  file-transfer
warp-cli
A CLI tool designed to make interacting with Facebook's Open Source Library "Warp Speed Data Transfer" fast and pain-free.
Stars: ✭ 43 (-96.5%)
Mutual labels:  file-transfer
Android File Transfer Linux
Android File Transfer for Linux
Stars: ✭ 994 (-19.12%)
Mutual labels:  file-transfer
Beam.cafe
🌠 Blazing fast file transfer app focused on user-experience. Fastest way to share files without uploading them.
Stars: ✭ 419 (-65.91%)
Mutual labels:  file-transfer
Flyingcarpet
Encrypted file transfer over ad hoc WiFi. No network infrastructure required, just two laptops in close range. Linux, Mac, and Windows.
Stars: ✭ 788 (-35.88%)
Mutual labels:  file-transfer
Wormhole William
End-to-end encrypted file transfer. A magic wormhole CLI and API in Go (golang).
Stars: ✭ 256 (-79.17%)
Mutual labels:  file-transfer
Efo
EFO是一个基于SpringBoot和Vue构建的文件分享系统,包括文件的上传与下载,文件的权限管理,远程文件管理等功能。
Stars: ✭ 327 (-73.39%)
Mutual labels:  file-transfer
Wifip2p
Wifi Direct,实现Android手机之间无网络传输文件,用于在局域网下传输任意文件
Stars: ✭ 535 (-56.47%)
Mutual labels:  file-transfer
django-pyas2
AS2 file transfer Server built on Python and Django.
Stars: ✭ 47 (-96.18%)
Mutual labels:  file-transfer
B0pass
百灵快传:基于Go语言的高性能 "手机电脑超大文件传输神器"、"局域网共享文件服务器"。LAN large file transfer tool。
Stars: ✭ 836 (-31.98%)
Mutual labels:  file-transfer
WifiFileTransfer
实现 Android 手机之间在局域网下传输任意文件
Stars: ✭ 152 (-87.63%)
Mutual labels:  file-transfer
Go Sync
gosync is a library for Golang styled around zsync / rsync, written with the intent that it enables efficient differential file transfer in a number of ways. NB: I am unable to contribute to this at the moment
Stars: ✭ 494 (-59.8%)
Mutual labels:  file-transfer
Netassistant
A UDP/TCP Assistant. 网络调试助手
Stars: ✭ 66 (-94.63%)
Mutual labels:  file-transfer
Blaze
⚡ File sharing progressive web app built using WebTorrent and WebSockets
Stars: ✭ 991 (-19.37%)
Mutual labels:  file-transfer
Jsxc
💬 Real-time xmpp chat application with video calls, file transfer and encrypted communication.
Stars: ✭ 604 (-50.85%)
Mutual labels:  file-transfer

OpenMTP | Android File Transfer for macOS

Introduction

Advanced Android File Transfer Application for macOS.

Transferring files between macOS and Android or any other MTP devices has always been a nightmare. There are a few File Transfer MTP apps which are available online but most of them are either too expensive or come with bad UI/UX. The official "Android File Transfer" app for macOS from Google comes with bugs, innumerable limitations, some of which include - not being able to transfer files larger than 4GB, frequent disconnections, unable to rename the folders or files on the android/MTP devices. Most of the other apps available online uses either WiFi or ADB protocol to transfer the files, which is an extremely time-consuming process.

Countless searches to find an app to solve these problems and failing to find one made me restless. So, I took the leap and decided to create an app for us that could help us have a smooth and hassle-free file transfer process from macOS to Android/MTP devices. Created with the objective of giving back to the community, we can all use this app for free in this lifetime.

Features

  • Safe, Transparent and Open-Source
  • Plug and Play via USB. No hassles, easy and instant connection.
  • Select between Internal Memory and SD Card
  • Transfer multiple files which are larger than 4GB
  • Dark mode
  • Drag-and-drop support
  • Split pane views for both Local Computer and Android device
  • Choose between Grid and List view.
  • Use Keyboard Shortcuts to navigate through your files.
  • No collection of personally identifiable information.

Kalam Kernel

OpenMTP 3.0 features a new MTP kernel and it was written from the scratch. It promises a file copy speed of 30 to 40 MB/s on low and mid range devices and 100 to 120 MB/s on higher end devices. The all new and powerful MTP kernel is named after Dr. A. P. J. Abdul Kalam

Do checkout the Go package which I've written to build Kalam Kernel: github.com/ganeshrvel/go-mtpx. Feel free to raise PRs.

Installation

  # newer versions:
  brew install openmtp --cask
  # older versions:
  brew cask install openmtp

Screengrabs

OpenMTP File Explorer

OpenMTP File Transfer

Keyboard Shortcuts

Command Keyboard Shortcut
Delete backspace
New Folder command (⌘)+n
Copy command (⌘)+c
Copy to Queue command (⌘)+shift+c
Paste command (⌘)+v
Refresh command (⌘) +r
Folder Up command (⌘)+b
Select All command (⌘)+a
Rename command (⌘)+d
Switch Tab command(⌘)+1
Open enter
Navigate Left left
Navigate Right right
Navigate Up up
Navigate Down down
Select Multiple Items Forward (in Grid View) shift+left
Select Multiple Items Backward (in Grid View) shift+right
Select Multiple Items Forward (in List View) shift+up
Select Multiple Items Backward (in List View) shift+down
Select Multiple Items (with mouse) command (⌘)+click or shift+click

Building from Source

Requirements: Node.js v10, Git and Yarn package manager

Clone

$ git clone --depth 1 --single-branch --branch master https://github.com/ganeshrvel/openmtp.git

$ cd openmtp
$ yarn

Run

A fresh clone might throw undefined state error. Run the following commands once to fix the issue.

# For Mac and Linux
$ UPGRADE_EXTENSIONS=1 npm run dev

# For Windows
$ set UPGRADE_EXTENSIONS=1 && npm run dev
# Development
$ yarn dev

# Pre-production
$ yarn start

Package

Setup the code signing to build, package and publish the app.

App Notarization for macOS (skip this section for non macOS builds)

  • Rename sample.env file as .env
  • Update APPLEID in .env file
  • Log into your Apple Account
  • Goto Security > App-Specific Passwords
  • Click on Generate Password..., enter a password label and click Create
  • Copy the displayed app-specific-password
  • Run
security add-generic-password -a "<apple-developer-account-username>" -w <app-specific-password*> -s "ELECTRON_NOTORIZE_PASSWORD"

Sentry

npm install -g @sentry/wizard
sentry-wizard --integration electron

# Upload Debug Information
# Everytime the electron.js version is upgraded run:
node sentry-symbols.js

sentry-cli login

Packaging Instructions: https://www.electron.build/code-signing

$ export GH_TOKEN="<github token>"
# For local platform
$ yarn package

# For multiple platforms
$ yarn package-all

Technical Features

  • Built using Electron v11 and React v17
  • Loadables, Dynamic Reducer Injection, Selectors for code splitting and performance optimization
  • Hot module reload (HMR) for instant feedback
  • Inbuilt error logging and profile/settings management
  • Industry standard state management
  • JSS, SASS/SCSS styling
  • Port assigned: 4642

Configurations

  • config/env/env.dev.js and config/env/env.prod.js contain the PORT number of the app.
  • config/dev-app-update.yml file holds the GitHub repo variables required by electron-updater.
  • config/google-analytics-key.js file contains the Google Analytics Tracking ID.
  • package.json build.publish object holds the values for publishing the packaged application.
  • app/constants folder contains all the constants required by the app.

Debugging

Debugging Guide

https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/400

Dispatching redux actions from the main process

https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/118

https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/108

VM112:2 Uncaught TypeError: Cannot read property 'state' of undefined error

# For Mac and Linux
$ UPGRADE_EXTENSIONS=1 npm run dev

# For Windows
$ set UPGRADE_EXTENSIONS=1 && npm run dev

Troubleshooting

Your device is not recognized

The app goes blank while trying to connect a Samsung device

Notarizing Electron apps throws - “You must first sign the relevant contracts online. (1048)” error

https://stackoverflow.com/questions/58358449/notarizing-electron-apps-throws-you-must-first-sign-the-relevant-contracts-on

More repos

Credits

Contribute

If you are interested in fixing issues and contributing directly to the code base, please see the guidelines.

Support OpenMTP

Help me keep the app FREE and open for all.

Contacts

Please feel free to contact me at [email protected]

License

OpenMTP | Android File Transfer for macOS is released under MIT License.

Copyright © 2018-Present Ganesh Rathinavel

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].