当前位置: 首页 > 软件库 > 手机/移动开发 > >

openmtp

授权协议 MIT License
开发语言 Java
所属分类 手机/移动开发
软件类型 开源软件
地区 不详
投 递 者 王才英
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

PackagingInstructions: 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 ganeshrvel@outlook.com

License

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

Copyright © 2018-Present Ganesh Rathinavel

  • 尽管 iPhone 很出色,然而 iPhone 在续航、快充、5G、本土化功能等方面的短板,让很多果粉也换用了安卓手机,或者将安卓作为备机。然而,很多果粉都只有 MacBook,毕竟 MacBook 目前仍是最出色的轻薄本之一,在 macOS 上如何连接安卓机?macOS 固然支持安卓的 MTP 模式,但体验其实并不好,更多朋友会选择其他一些第三方方案。 之前锤子曾经推出过一款 macOS 连接安

  • macOS中默认方式可能无法访问Android手机存储,因此需要借助其他软件来访问。OpenMTP就是比较好用的一款软件。可以到官网上下载:https://openmtp.ganeshrvel.com/。 安装好之后,可以看到其界面比较简洁,左侧为macOS系统本地磁盘文件,右侧为连接到系统并且开启MTP模式的手机存储中的文件。如果想在两个系统之间传递数据,可以通过右键菜单或快捷键完成,非常方便。

相关阅读

相关文章

相关问答

相关文档