GitHub

您所在的位置:网站首页 mtp传输 GitHub

GitHub

2024-06-17 20:22| 来源: 网络整理| 查看: 265

OpenMTP | Android File Transfer for macOS Author: Ganesh Rathinavel License: MIT System Requirements: macOS 11.0 (Big Sur) or higher Website URL: https://openmtp.ganeshrvel.com Repo URL: https://github.com/ganeshrvel/openmtp Contacts: [email protected] 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.

System Requirements and Support To support macOS version below Big Sur the Kalam kernel needs to be compiled on an older macOS machine everytime there is an update, which is practically very difficult Only the latest 3 versions of macOS will receive the Kalam Kernel updates, which includes new device supports, fixes, stability improvements. macOS Big Sur (11.0) or above will receive the above said updates We have now officially retired the support for Kalam Kernel on macOS 10.13 (OS X El High Sierra) and lower. Only the "Legacy" MTP mode will continue working on these outdated machines. We will continue releasing the updates for both Intel and ARM64 machines Installation Download the Mac Apple Silicon version Download the Mac Intel Silicon version Using Homebrew Cask # newer versions: brew install openmtp --cask # older versions: brew cask install openmtp Find the latest dmg file from GitHub Releases 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 v16, Git and Yarn package manager

Clone $ 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 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 Debugging a Packaged app # On terminal run $ "/path/to/OpenMTP.app/Contents/MacOS/OpenMTP" --remote-debugging-port=6363 Open a Chromium browser Input "about://inpsect" into the URL bar Add a new connection localhost:6363 Inpect OpenMTP @ port 6363 Publishing using CI/CD: CodeMagic.io Create a new App (Choose others -> Enter Electron) Environment variables: APPLEID: APPLE_APP_SPECIFIC_PASSWORD: Log into your Apple Account Goto Sign-In and Security > App-Specific Passwords Click on Generate Password..., enter a password label and click Create Copy the displayed app-specific-password APPLE_TEAM_ID: To get Team ID, go to your Apple Developer Account Then click on "Membership details", and there you will find your Team ID. SENTRY_URL: https://sentry.io/ SENTRY_ORG: SENTRY_PROJECT: SENTRY_TOKEN_ID: Find it from here: Auth Tokens Scopes: event:admin, event:read, member:read, org:read, project:read, project:releases, team:read GITHUB_TOKEN: Personal access token There are two options available: Fine-grained personal access tokens https://github.com/settings/tokens?type=beta Permissions: Contents - (Read and Write access to code) Personal access tokens (classic) https://github.com/settings/tokens Scopes: admin:gpg_key, admin:public_key, repo, user, workflow CSC_LINK: Keychain -> Default Keychains menu in the left -> Login -> My Certificates Search for Developer ID Application in the top search bar If there are no results for the Developer ID Application, for the organization, create one from here: Apple Developer Certificates Follow these steps to get the Apple Developer certificated installed in the local machine Obtaining-an-Apple-Developer-ID-Certificate-for-macOS-Provisioning Search for Developer ID Application in the top search bar Expand Developer ID Application: (XXXYYYZZZ) See if the private key's name matches this: Mac Developer ID Application: Else rename the private key as (right click -> get info) Mac Developer ID Application: Close the window Right Click on the private key -> Mac Developer ID Application: Export Mac Developer ID Application: File name: CERTIFICATE_PRIVATE_KEY.p12 Enter Password. This is the CSC_KEY_PASSWORD, note this down Run (this step doesnt work if you are using fig or ohmyzsh, use raw terminal): base64 -i CERTIFICATE_PRIVATE_KEY.p12 -o CERTIFICATE_PRIVATE_KEY.txt Copy the whole content of the file CERTIFICATE_PRIVATE_KEY.txt Paste the content as the value for the field CSC_LINK CSC_KEY_PASSWORD is the password from the above step CODEMAGIC_AUTH_TOKEN_ID: Find it from here: Sidebar -> Teams -> Personal Account -> Integrations -> Codemagic API CODEMAGIC_INTEL_X64_WORKFLOW_ID_PROD: Find the relevant workflow id from codemagic.yaml, (mostly macos-intel-x64-build-prod) CODEMAGIC_INTEL_X64_WORKFLOW_ID_DEV: Find the relevant workflow id from codemagic.yaml, (mostly macos-intel-x64-build-dev) PUBLISH_PROD_REPOSITORY: PUBLISH_DEV_REPOSITORY: CODEMAGIC_PUBLISH_PROJECT_ID: PUBLISH_EMAIL: Email address to receive the updates on publish References: https://www.electron.build/code-signing.html https://docs.codemagic.io/yaml-code-signing/signing-macos/#saving-the-api-key-to-environment-variables Packaging (locally) and Publishing

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

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

Rename sample.env file as .env To update APPLEID and APPLE_APP_SPECIFIC_PASSWORD in .env file Log into your Apple Account Goto Sign-In and 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 "" -w -s "APPLE_APP_SPECIFIC_PASSWORD" Log into your Apple App Store Connect Account and accept the presented terms and conditions The statuses shall turn Active

Sentry

Auth Tokens Settings page: https://sentry.io/settings/account/api/auth-tokens/ 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="" # For local platform $ yarn package # For multiple platforms $ yarn package-all Technical Features Built using Electron v17 and React v18 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

electron-react-boilerplate/electron-react-boilerplate#400

Dispatching redux actions from the main process

electron-react-boilerplate/electron-react-boilerplate#118

electron-react-boilerplate/electron-react-boilerplate#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 node-mac-permissions throws Speech framework is not compatible with macOS < 10.15 On macOS


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3