在 macOS 和安卓或其他 MTP 设备之间传输文件一直是一场噩梦。市面上有一些 MTP 文件传输应用,但它们要么价格昂贵,要么用户界面和体验很差。谷歌官方为 macOS 提供的"Android File Transfer"应用存在诸多问题和限制,比如无法传输大于 4GB 的文件、频繁断开连接、无法重命名安卓/MTP 设备上的文件夹或文件等。其他大多数在线应用则使用 WiFi 或 ADB 协议传输文件,这是一个极其耗时的过程。
无数次搜索寻找解决这些问题的应用却一无所获,这让我倍感焦虑。于是,我决定自己开发一个应用,帮助我们实现从 macOS 到安卓/MTP 设备的流畅无忧的文件传输过程。本着回馈社区的初衷,我们都可以在今后免费使用这个应用。
OpenMTP 3.0 采用了全新的 MTP 内核,该内核是从零开始编写的。它在中低端设备上可实现 30 到 40 MB/s 的文件复制速度,在高端设备上可达到 100 到 120 MB/s。这个全新强大的 MTP 内核以 A. P. J. Abdul Kalam 博士 的名字命名。
欢迎查看我为构建 Kalam 内核而编写的 Go 包:github.com/ganeshrvel/go-mtpx。欢迎提交 PR。
Kalam
内核更新,包括新设备支持、修复和稳定性改进。macOS Big Sur (11.0) 及以上版本将收到上述更新Kalam
内核支持。这些过时机器上只能继续使用"旧版"MTP 模式Intel
和 ARM64
机器发布更新# 新版本: brew install openmtp --cask # 旧版本: brew cask install openmtp
命令 | 键盘快捷键 |
---|---|
删除 | <kbd>backspace</kbd> |
新建文件夹 | <kbd>command (⌘)</kbd>+<kbd>n</kbd> |
复制 | <kbd>command (⌘)</kbd>+<kbd>c</kbd> |
复制到队列 | <kbd>command (⌘)</kbd>+<kbd>shift</kbd>+<kbd>c</kbd> |
粘贴 | <kbd>command (⌘)</kbd>+<kbd>v</kbd> |
刷新 | <kbd>command (⌘)</kbd> +<kbd>r</kbd> |
返回上级文件夹 | <kbd>command (⌘)</kbd>+<kbd>b</kbd> |
全选 | <kbd>command (⌘)</kbd>+<kbd>a</kbd> |
重命名 | <kbd>command (⌘)</kbd>+<kbd>d</kbd> |
切换标签 | <kbd>command(⌘)</kbd>+<kbd>1</kbd> |
打开 | <kbd>enter</kbd> |
向左导航 | <kbd>left</kbd> |
向右导航 | <kbd>right</kbd> |
向上导航 | <kbd>up</kbd> |
向下导航 | <kbd>down</kbd> |
向前选择多个项目 (网格视图) | <kbd>shift</kbd>+<kbd>left</kbd> |
向后选择多个项目 (网格视图) | <kbd>shift</kbd>+<kbd>right</kbd> |
向前选择多个项目 (列表视图) | <kbd>shift</kbd>+<kbd>up</kbd> |
向后选择多个项目 (列表视图) | <kbd>shift</kbd>+<kbd>down</kbd> |
选择多个项目 (使用鼠标) | <kbd>command (⌘)</kbd>+<kbd>click</kbd> 或 <kbd>shift</kbd>+<kbd>click</kbd> |
要求:Node.js v16、Git 和 Yarn 包管理器
$ git clone https://github.com/ganeshrvel/openmtp.git $ cd openmtp # 安装 yarn npm install -g yarn # 安装 sentry cli npm -g i @sentry/cli
$ yarn
新克隆的项目可能会抛出"未定义状态"错误。运行以下命令一次以解决该问题。
# 对于 Mac 和 Linux $ UPGRADE_EXTENSIONS=1 npm run dev # 对于 Windows $ set UPGRADE_EXTENSIONS=1 && npm run dev
# 开发环境 $ yarn dev # 预生产环境 $ yarn start
# 在终端运行 $ "/path/to/OpenMTP.app/Contents/MacOS/OpenMTP" --remote-debugging-port=6363
localhost:6363
6363
检查 OpenMTPAPPLEID
: <Apple 开发者账号用户名>
APPLE_APP_SPECIFIC_PASSWORD
: <应用特定密码>
APPLE_TEAM_ID
: <Apple 团队 ID>
SENTRY_URL
: https://sentry.io/
SENTRY_ORG
: <Sentry 组织名称>
SENTRY_PROJECT
: <Sentry 项目>
SENTRY_TOKEN_ID
: <Sentry 认证令牌>
event:admin, event:read, member:read, org:read, project:read, project:releases, team:read
GITHUB_TOKEN
: 个人访问令牌
内容 - (读取和写入代码的访问权限)
admin:gpg_key, admin:public_key, repo, user, workflow
CSC_LINK
:
默认钥匙串
-> 登录 -> 我的证书Developer ID Application
Developer ID Application
的搜索结果,请从这里创建一个:Apple 开发者证书Developer ID Application
Developer ID Application: <用户名> (XXXYYYZZZ)
Mac Developer ID Application: <用户名>
Mac Developer ID Application: <用户名>
Mac Developer ID Application: <用户名>
Mac Developer ID Application: <用户名>
CERTIFICATE_PRIVATE_KEY.p12
CSC_KEY_PASSWORD
,请记下base64 -i CERTIFICATE_PRIVATE_KEY.p12 -o CERTIFICATE_PRIVATE_KEY.txt
CERTIFICATE_PRIVATE_KEY.txt
文件的全部内容CSC_LINK
字段的值CSC_KEY_PASSWORD
是上一步中的密码CODEMAGIC_AUTH_TOKEN_ID
: <CodeMagic API 令牌>
CODEMAGIC_INTEL_X64_WORKFLOW_ID_PROD
: <生产环境 codeMagic 工作流 ID>
codemagic.yaml
中找到相关的工作流 ID(通常是 macos-intel-x64-build-prod
)CODEMAGIC_INTEL_X64_WORKFLOW_ID_DEV
: <开发环境 codeMagic 工作流 ID>
codemagic.yaml
中找到相关的工作流 ID(通常是 macos-intel-x64-build-dev
)PUBLISH_PROD_REPOSITORY
: <用于发布生产应用的仓库>
PUBLISH_DEV_REPOSITORY
: <用于发布开发应用的仓库>
CODEMAGIC_PUBLISH_PROJECT_ID
: <Codemagic intel 项目 ID>
PUBLISH_EMAIL
: 接收发布更新的电子邮件地址
设置 代码签名 以构建、本地打包和发布应用。
macOS 应用公证(非 macOS 构建请跳过此部分)
APPLEID
和 APPLE_APP_SPECIFIC_PASSWORD
security add-generic-password -a "<apple-开发者账号用户名>" -w <应用特定密码> -s "APPLE_APP_SPECIFIC_PASSWORD"
Sentry
npm install -g @sentry/wizard sentry-wizard --integration electron # 上传调试信息 # 每次升级electron.js版本时运行: node sentry-symbols.js sentry-cli login
打包 说明:https://www.electron.build/code-signing
$ export GH_TOKEN="<github token>"
# 针对本地平台 $ yarn package # 针对多个平台 $ yarn package-all
https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/400
https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/118
https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/108
# 对于Mac和Linux $ UPGRADE_EXTENSIONS=1 npm run dev # 对于Windows $ set UPGRADE_EXTENSIONS=1 && npm run dev
Speech framework is not compatible with macOS < 10.15
yarn install
将抛出npm-rebuild错误package.json
中移除node-mac-permissions
依赖webpack/config.base.js
中的default.plugins
添加ignorePlugin行
new webpack.IgnorePlugin({ resourceRegExp: /^(node-mac-permissions)$/u }),
NODE_MAC_PERMISSIONS_MIN_OS
常量定义了显示macOS使用访问权限弹出窗口所需的最低操作系统版本特别感谢CodeMagic和Kevin Suhajda赞助他们的CI/CD虚拟机,使应用程序发布变得更加流畅和容易。🎊🎊 请查看他们的产品部分以了解更多。
感谢Ayushi Bothra女士为文档和页面做出贡献。
应用程序logo由Shubhendu Mitra贡献。请务必在Behance上查看他的更多作品。
感谢Vladimir Menshakov开发的android-file-transfer-linux(MTP旧版内核)
特别感谢@yennsarah、@h0tk3y、@riginoommen、@AjithKumarvm、@kiranshaji555、Dick Cowan、Kjell Dankert、Thorolf E.R. Weißhuhn以及所有其他帮助我测试应用程序的社区成员。
这个应用程序基于https://github.com/ganeshrvel/electron-react-redux-advanced-boilerplate构建,该项目是https://github.com/electron-react-boilerplate/electron-react-boilerplate的一个经过大量修改的分支。
应用程序中使用的图标由flaticon、good-ware和kiranshastry制作,遵循CC 3.0 BY许可。
"未找到图片"图标由Phonlaphat Thongsriphong制作。
如果您有兴趣修复问题并直接贡献代码,请参阅指南。
帮助我保持应用程序对所有人免费开放。
如有任何问题,请随时通过ganeshrvel@outlook.com与我联系。
OpenMTP | Android File Transfer for macOS 根据MIT许可证发布。
版权所有 © 2018-至今 Ganesh Rathinavel
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码 ,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能 助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
AI办公助手,复杂任务高效处理
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号