在MACOS和Android或任何其他MTP设备之间传输文件一直是一场噩梦。有几个文件传输MTP应用程序可以在线获得,但其中大多数要么太贵了,要么带有不良的UI/UX。来自Google的MACO的官方“ Android文件传输”应用程序带有错误,无数限制,其中一些包括 - 无法传输大于4GB的文件,频繁断开连接,无法在Android/MTP设备上重命名文件夹或文件。在线可用的大多数其他应用程序都使用WiFi或ADB协议来传输文件,这是一个非常耗时的过程。
无数搜索以找到一个解决这些问题并没有找到一个应用程序的应用程序,这使我感到不安。因此,我进行了飞跃,决定为我们创建一个应用程序,可以帮助我们从MACOS到Android/MTP设备进行平滑且无忧的文件传输过程。为了回馈社区的目的,我们都可以在这一生中免费使用此应用程序。
OpenMTP 3.0具有新的MTP内核,它是从头开始写的。它承诺在低和中范围设备上的文件副本速度为30至40 MB/s,高端设备上的文件副本速度为100至120 MB/s。全新的强大MTP内核以APJ Abdul Kalam博士的名字命名
请检查我为构建Kalam内核的GO软件包:github.com/ganeshrvel/go-mtpx。随时提高公关。
Kalam内核更新,其中包括新的设备支持,修复程序,改进稳定性。 Macos Big Sur(11.0)或更高版本将收到上述更新Kalam内核的支持。只有“传统” MTP模式将继续在这些过时的机器上工作。Intel和ARM64机器的更新 # newer versions:
brew install openmtp --cask
# older versions:
brew cask install openmtp

| 命令 | 键盘快捷键 |
|---|---|
| 删除 | Backpace |
| 新文件夹 | 命令(⌘) + n |
| 复制 | 命令(⌘) + c |
| 复制到队列 | 命令(⌘) + shift + c |
| 粘贴 | 命令(⌘) + v |
| 刷新 | 命令(⌘) + r |
| 文件夹向上 | 命令(⌘) + b |
| 选择全部 | 命令(⌘) + a |
| 重命名 | 命令(⌘) + D |
| 开关选项卡 | 命令(⌘) + 1 |
| 打开 | 进入 |
| 左导航 | 左边 |
| 正确导航 | 正确的 |
| 导航 | 向上 |
| 导航 | 向下 |
| 选择多个项目(在网格视图中) | Shift +向左 |
| 向后选择多个项目(在网格视图中) | Shift +正确 |
| 选择多个项目(在列表视图中) | 移动+向上 |
| 向后选择多个项目(在列表视图中) | 移动+向下 |
| 选择多个项目(使用鼠标) | 命令(⌘) +单击或换档+单击 |
要求:node.js v16,git和Yarn package Manager
$ git clone https://github.com/ganeshrvel/openmtp.git
$ cd openmtp
# install yarn
npm install -g yarn
# install sentry cli
npm -g i @sentry/cli$ yarn新鲜的克隆可能会丢弃未定义的状态错误。运行以下命令一次解决问题。
# 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
# On terminal run
$ " /path/to/OpenMTP.app/Contents/MacOS/OpenMTP " --remote-debugging-port=6363localhost:63636363APPLEID : <Apple developer account username>APPLE_APP_SPECIFIC_PASSWORD : <App-Specific Password>APPLE_TEAM_ID : <Apple Team ID>SENTRY_URL : https://sentry.io/SENTRY_ORG : <Sentry Organization Name>SENTRY_PROJECT : <Sentry Project>SENTRY_TOKEN_ID : <Sentry Auth Token>event:admin, event:read, member:read, org:read, project:read, project:releases, team:readGITHUB_TOKEN : Personal access tokenContents - (Read and Write access to code)admin:gpg_key, admin:public_key, repo, user, workflowCSC_LINK :Default Keychains菜单Developer ID ApplicationDeveloper ID Application的结果,则为组织创建一个:Apple Developer证书Developer ID ApplicationDeveloper ID Application: <User Name> (XXXYYYZZZ)Mac Developer ID Application: <User Name>Mac Developer ID Application: <User Name>Mac Developer ID Application: <User Name>Mac Developer ID Application: <User Name>CERTIFICATE_PRIVATE_KEY.p12CSC_KEY_PASSWORD ,请注意base64 -i CERTIFICATE_PRIVATE_KEY.p12 -o CERTIFICATE_PRIVATE_KEY.txtCERTIFICATE_PRIVATE_KEY.txtCSC_LINK的值CSC_KEY_PASSWORD是上述步骤的密码CODEMAGIC_AUTH_TOKEN_ID : <CodeMagic API Token>CODEMAGIC_INTEL_X64_WORKFLOW_ID_PROD : <Prod codeMagic workflow id>codemagic.yaml找到相关的工作流ID(主要是macos-intel-x64-build-prod )CODEMAGIC_INTEL_X64_WORKFLOW_ID_DEV : <Dev codeMagic workflow id>codemagic.yaml找到相关的工作流ID(主要是macos-intel-x64-build-dev )PUBLISH_PROD_REPOSITORY : <Repository to publish the production app>PUBLISH_DEV_REPOSITORY : <Repository to publish the dev app>CODEMAGIC_PUBLISH_PROJECT_ID : <Codemagic intel project id>PUBLISH_EMAIL : Email address to receive the updates on publish设置代码签名以构建,包装(本地)并发布该应用程序。
MacOS的应用公证(跳过本节的非MACOS构建)
APPLEID和APPLE_APP_SPECIFIC_PASSWORD在.env文件中security add-generic-password -a " <apple-developer-account-username> " -w < app-specific-password > -s " APPLE_APP_SPECIFIC_PASSWORD "哨兵
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包装说明:https://www.electron.build/code-signing
$ export GH_TOKEN= " <github token> " # For local platform
$ yarn package
# For multiple platforms
$ yarn package-all电子反应 - 机器人/电子反应 - 机器人#400
电子反应 - 机器人板/电子反应 - 机器人#118
电子反应 - 机器人板/电子反应 - 机器人#108
# For Mac and Linux
$ UPGRADE_EXTENSIONS=1 npm run dev
# For Windows
$ set UPGRADE_EXTENSIONS=1 && npm run devSpeech framework is not compatible with macOS < 10.15yarn install将抛出NPM重建错误package.json中删除node-mac-permissions依赖性webpack/config.base.js中添加ignoreplugin行中的default.pluginsnew webpack.IgnorePlugin({ resourceRegExp: /^(node-mac-permissions)$/u }),NODE_MAC_PERMISSIONS_MIN_OS常数定义显示MACOS使用访问权限弹出所需的最小OS版本https://stackoverflow.com/questions/58358449/notarizing-electron-apps-throws-throws-you-must-first-sign-the-relevant-contracts-on
https://stackoverflow.com/questions/58358449/notarizing-electron-apps-throws-throws-you-must-first-sign-the-relevant-contracts-on
特别感谢CodeMagic和Kevin Suhajda赞助其CI/CD VM,因此该应用程序现在更加精简,更容易。 ?请检查其产品部分以获取更多信息。
向@CodyJung特别喊着添加了Fujifilm和Garmin设备的支持。
感谢Ayushi Bothra女士为文档和页面做出了贡献。
App Logo由Shubhendu Mitra贡献。确保在表现方面查看更多他的作品。
感谢Vladimir Menshakov的Android-File-Transfer-Linux(MTP Legacy内核)
向 @yennsarah, @h0tk3y,@riginoommen,@ajithkumarvm, @kiranshaji555,dick Cowan,Kjell Dankert,Thorolf ErWeißhuhn和所有帮助我测试该应用程序的所有其他社区成员。
该应用程序是基于https://github.com/ganeshrvel/electron-react-reakct-redux-advanced-boilerplate构建的,它是https://github.com/electron-react-boilerplate/electron-rectron-rectron-react-boilerplate。
该应用程序中使用的图标是由Flaticon,Good-Ware和Kiranshastry制作的,该图标已获得CC 3.0的许可。
“未找到的图像”图标是由Phonlaphat Thongsriphong制作的。
如果您有兴趣解决问题并直接为代码库做出贡献,请参阅指南。
帮助我保持应用程序免费并为所有人开放。
请随时通过[email protected]与我联系
OpenMtp | MACOS的Android文件传输是根据MIT许可发布的。
版权所有©2018-Present Ganesh Rathinavel