Skip to content

gkaragioul/Cross_Drive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

130 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CrossDriveVideo.mp4

CrossDrive

Mac drive access for Windows. Mount, browse, and copy files from APFS and HFS+ drives as real local drive letters.
Built with Electron, React, bundled native Windows helper services, and optional WSL2 kernel filesystem drivers.

Download - Features - Requirements - Building - License

Features

  • Mount supported APFS, HFS, and HFS+ Mac-formatted volumes on Windows.
  • Expose mounted volumes through local Windows drive letters.
  • Use bundled native Windows helper services as the default mount path.
  • Keep WSL2 kernel filesystem drivers available as an optional advanced path.
  • Keep backend communication local through loopback HTTP and named pipes.

Status

CrossDrive is pre-GA. APFS write support is experimental and disabled by default unless CROSSDRIVE_EXPERIMENTAL_APFS_WRITES=1 is set. The legacy CROSSDRIVE_EXPERIMENTAL_APFS_WRITES alias is still accepted. CoreStorage / FileVault 1 is detected but explicitly unsupported.

License

CrossDrive application source code is Free/Libre/Open Source Software distributed under the MIT License. See LICENSE.

Third-party dependencies, bundled prerequisites, and GPL-covered kernel/module binaries remain under their own license terms. See the third-party and GPL source notices below for the full binary-distribution license picture.

Copyright (c) 2026 CrossDrive contributors.

Third-Party Notices

Binary distributions include third-party components under their own terms. See:

  • build/THIRD_PARTY_NOTICES.txt
  • build/GPL_SOURCE_OFFER.txt
  • docs/GPL_SOURCE_MANIFEST.md
  • build/LICENSE.GPL-2.0.txt

Required WinFsp attribution:

WinFsp - Windows File System Proxy, Copyright (C) Bill Zissimopoulos

https://github.com/winfsp/winfsp

CrossDrive uses the WinFsp FLOSS exception path by distributing the app under MIT and shipping the unmodified WinFsp installer. Do not distribute CrossDrive as proprietary software with WinFsp unless you have a separate commercial WinFsp license.

Architecture

Electron main process -> Express API on 127.0.0.1:3001
React UI              -> polls local API for drive state
.NET native helpers   -> default broker, service, and user-session drive mapping
WinFsp                -> bundled Windows filesystem presentation support
WSL2 kernel path      -> optional APFS/HFS/HFS+ mount path

Mount modes are controlled by CROSSDRIVE_MOUNT_MODE:

  • native_first - default customer path, using bundled native helpers first.
  • native_only - native helpers only, with WSL disabled.
  • wsl_kernel - optional WSL2 kernel path for advanced/testing installs.

Requirements

  • Windows 10/11 64-bit
  • Administrator privileges
  • WinFsp runtime, bundled as prereqs/winfsp.msi for installers
  • WSL2 with Ubuntu only if using the optional wsl_kernel mount mode
  • Node.js 20+ for development
  • .NET 9 SDK for native builds

Development

npm install
npm run start

The Vite dev server runs on http://localhost:5173. The backend binds only to 127.0.0.1:3001.

Useful commands:

npm run test
npm run build
npm run security:audit
npm run commercial:gate
npm run native:publish
npm run hfs:test
npm run apfs:test

Native source folders still use the historical CrossDrive.* namespace. Those names are internal implementation details; shipped app branding, helper processes, installer metadata, update feed paths, and user-visible state paths use CrossDrive.

Release

npm run release:win:full
npm run release:audit

Release artifacts:

  • dist/CrossDriveSetup.exe
  • dist/CrossDrive-<version>.exe

For unsigned staging audits:

npm run release:audit:unsigned

For production Authenticode signing, configure a real certificate with CSC_LINK / WIN_CSC_LINK and matching password environment variables.

Packaging Policy

The installer should ship:

  • unmodified prereqs/winfsp.msi
  • prereqs/crossdrive-kernel/wsl_kernel
  • prereqs/crossdrive-kernel/modules/apfs.ko
  • prereqs/crossdrive-kernel/modules/hfs.ko
  • prereqs/crossdrive-kernel/modules/hfsplus.ko
  • published native service, broker, and user-session helper binaries
  • LICENSE.txt
  • THIRD_PARTY_NOTICES.txt
  • GPL_SOURCE_OFFER.txt
  • GPL_SOURCE_MANIFEST.md

The installer should not ship extracted WinFsp SDK/runtime folders such as prereqs/winfsp-extract.

The bundled WSL kernel/modules are GPL-covered components. Keep build/GPL_SOURCE_OFFER.txt and docs/GPL_SOURCE_MANIFEST.md up to date for every binary release. Before distributing a public installer, publish the complete corresponding source package for those GPL-covered binaries, including the exact source revisions, kernel .config, local patches, and build commands/scripts.

Known Limitations

  • APFS writes are experimental and hidden by default.
  • Hardware-bound APFS encryption requires the original Mac.
  • CoreStorage / FileVault 1 is unsupported for GA.
  • Final GA still requires real physical-drive validation.

About

CrossDrive: open-source Windows app for mounting APFS and HFS+ Mac drives with WSL2 kernel drivers and native helper services.

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors