在 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编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白, 由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以 让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场 景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲 话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。