Skip to content

Repository files navigation

DroidDesk

English | 中文

DroidDesk is a native macOS app for managing Android devices through user-authorized ADB. It focuses on practical device management within Android's official permission boundaries: files, apps, contacts, diagnostics, safe background restriction suggestions, local data workflows, and external NFC tag backups.

Features

  • Browse Android shared storage with upload, folder upload, download, rename, move, delete, and multi-select actions.
  • Show transfer progress for single and batch transfers.
  • List installed apps with best-effort localized names and icon extraction.
  • Batch uninstall selected apps, while protecting DroidDesk Helper and core system components.
  • Run one-click app diagnostics for background processes, services, network activity, power/wakelock signals, permissions, and risk suggestions.
  • Apply conservative one-click background restrictions for selected diagnostic actions using ADB-supported permission and appops commands.
  • Read phone contacts plus SIM1/SIM2 contacts separately, including SIM capacity.
  • Edit, copy, move, delete, back up, and restore contacts through DroidDesk Helper.
  • Export contacts backups as DroidDesk JSON, VCF, and CSV.
  • Restore backups to a new Android phone's phone contacts by default.
  • Import user-exported WeChat contacts/messages from CSV, JSON, TXT, or HTML and organize them locally with notes/tags.
  • Detect normal WeChat and cloned WeChat instances, and clear selected local app data with explicit confirmation.
  • Back up externally scanned NFC tag metadata through the helper app.

Safety Boundaries

DroidDesk uses only user-authorized ADB and Android platform APIs. It does not bypass passwords, root the phone, exploit protected storage, decrypt private app databases, or back up secure element data such as wallet, payment, transit, or access cards.

WeChat support does not directly read WeChat's private database. It only imports files the user has exported or placed in shared storage. The "clear local WeChat data" action uses Android's normal pm clear --user <id> <package> command and does not claim to erase cloud data, other devices, computer backups, system snapshots, or forensic-level storage remnants.

Requirements

  • macOS 14 or newer.
  • Swift 6 toolchain.
  • Android phone with USB debugging authorized.
  • Android Platform Tools adb.
  • For building DroidDesk Helper from source: Android SDK platform/build-tools and JDK 17. The local development setup stores these under tools/, which is intentionally ignored by git.

Build

./script/build_nfc_helper.sh
swift build
./script/build_and_run.sh

Package For macOS

./script/package_release.sh

Release artifacts are written to release/:

  • DroidDesk.app
  • DroidDesk-macOS.zip
  • DroidDesk-macOS.dmg
  • DroidDesk-macOS.pkg

The current package script uses ad-hoc signing for local installation and testing. Public distribution outside GitHub source/internal testing should use a Developer ID certificate and Apple notarization.

GitHub Release Checklist

  1. Commit source files only; do not commit tools/, .build/, dist/, or release/.
  2. Run swift run DroidDeskCoreSmokeTests.
  3. Run ./script/package_release.sh.
  4. Create a GitHub release and attach release/DroidDesk-macOS.dmg, release/DroidDesk-macOS.pkg, and release/DroidDesk-macOS.zip.
  5. Mention that first launch may require right-click > Open unless the app is Developer ID signed and notarized.

中文说明

DroidDesk 是一个原生 macOS 应用,用于在用户授权 ADB 的前提下管理 Android 设备。它遵守 Android 官方权限边界,提供文件、应用、通讯录、诊断、保守后台限制、本地资料整理和外部 NFC 标签备份等功能。

功能

  • 浏览 Android 共享存储,支持上传、文件夹上传、下载、重命名、移动、删除和多选操作。
  • 单文件和批量传输显示进度。
  • 显示已安装应用,尽可能读取中文名称并提取应用图标。
  • 支持多选批量删除应用,并保护 DroidDesk Helper 和系统核心组件。
  • 一键诊断后台进程、服务、网络、耗电/唤醒、权限和风险建议。
  • 对诊断结果执行保守的一键后台限制,只使用 ADB 支持的权限撤销和 appops 限制命令。
  • 分别读取手机通讯录、SIM1/SIM2 通讯录,并显示 SIM 容量。
  • 通过 DroidDesk Helper 编辑、复制、移动、删除、备份和恢复联系人。
  • 联系人备份可导出为 DroidDesk JSON、VCF 和 CSV。
  • 跨手机恢复时默认恢复到新 Android 手机的手机通讯录。
  • 导入用户主动导出的微信联系人/聊天资料,支持 CSV、JSON、TXT、HTML,并可在本地整理备注和标签。
  • 检测普通微信和微信分身,并可在明确确认后清空指定实例的本机应用数据。
  • 通过 Helper 备份外部 NFC 标签的可读元数据。

安全边界

DroidDesk 只使用用户授权的 ADB 和 Android 平台 API。它不会绕过密码、不会 root 手机、不会利用漏洞读取受保护存储、不会解密私有应用数据库,也不会备份钱包、支付卡、公交卡、门禁卡或安全元件数据。

微信功能不会直接读取微信私有数据库,只会导入用户主动导出的文件或共享存储中的可读文件。“清空微信本机数据”使用 Android 标准 pm clear --user <id> <package> 命令,不承诺删除云端数据、对方设备、电脑端备份、系统快照或法证级存储残留。

运行要求

  • macOS 14 或更高版本。
  • Swift 6 工具链。
  • 已开启 USB 调试并授权的 Android 手机。
  • Android Platform Tools adb
  • 如需从源码构建 DroidDesk Helper,需要 Android SDK platform/build-tools 和 JDK 17。本地开发环境默认放在 tools/ 下,该目录不会提交到 git。

构建

./script/build_nfc_helper.sh
swift build
./script/build_and_run.sh

打包 macOS 安装包

./script/package_release.sh

安装包输出到 release/

  • DroidDesk.app
  • DroidDesk-macOS.zip
  • DroidDesk-macOS.dmg
  • DroidDesk-macOS.pkg

当前打包脚本使用 ad-hoc 签名,适合本地安装和测试。公开分发时建议使用 Apple Developer ID 证书签名并完成 notarization 公证。

GitHub 发布检查清单

  1. 只提交源码文件,不提交 tools/.build/dist/release/
  2. 运行 swift run DroidDeskCoreSmokeTests
  3. 运行 ./script/package_release.sh
  4. 创建 GitHub Release,并上传 release/DroidDesk-macOS.dmgrelease/DroidDesk-macOS.pkgrelease/DroidDesk-macOS.zip
  5. 说明如果没有 Developer ID 签名和公证,首次打开可能需要右键选择 Open。

About

A macOS app for managing Android devices over ADB, including files, apps, contacts, diagnostics, and safe local data workflows.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages