Skip to content
codex-clampsPublic
forked from shadichy/fparted

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

fparted 💾

GitHub Release Documentation CI Status License: GPL v3 Platform

The modern, high-reliability partition and storage manager engineered for rooted Android and Linux.
Think of it as GParted reimagined for touchscreens, mobile storage, Samsung DeX, and Android-x86/Bliss OS.

📖 Read the Full Documentation: https://codex-clamps.github.io/fparted-docs/


✨ Why fparted?

Managing storage on Android used to mean juggling sketchy shell scripts in a terminal emulator or unplugging your SD card to plug into a PC. fparted gives you desktop-class partition and filesystem management right on your device, backed by rigorous safety invariants.

┌─────────────────────────────────────────────────────────────────────────────────┐
│  Selected Disk: /dev/block/mmcblk1 (128.0 GiB SanDisk Extreme)                  │
│ ┌───────────────────────────┬───────────────────────────┬─────────────────────┐ │
│ │ 1: EFI / FAT32 (512 MiB)  │ 2: Termux Rootfs (64 GiB) │ 3: ExFAT (63.5 GiB) │ │
│ └───────────────────────────┴───────────────────────────┴─────────────────────┘ │
│                                                                                 │
│  ⚙️ Operations Queue: 2 Pending (Resize Partition 2 ➜ Format Partition 3)       │
│  [ Undo ]   [ Clear All ]                                      [ Apply (2) ▶ ]  │
└─────────────────────────────────────────────────────────────────────────────────┘

🛡️ Core Highlights

  • 🔒 Zero Data-Loss Surprises: Every mutation is staged in a virtual operations queue and previewed on an interactive partition graph before anything touches disk.
  • ⚡ Native Bionic Toolchain: Ships with genuine GNU parted, e2fsprogs, dosfstools, ntfsprogs-plus, btrfs-progs, xfsprogs, f2fs-tools, and cryptsetup compiled for Android's Bionic library.
  • 🧱 Immutable Root Boundary: Checks the exact binary /system/bin/su on launch and verifies permissions. All privileged commands are strictly POSIX single-quoted with sanitized environments.
  • 📦 Dual Partition & Raw Image Engine: Create full byte-for-byte .img backups of whole drives or individual partitions via Android's Storage Access Framework (SAF) or high-speed direct C/JNI I/O.
  • 🎨 Dynamic Material You Design: Automatically extracts your Android 12+ wallpaper palette, providing full light/dark theming and fluid touch gestures.
  • 💻 Desktop & Samsung DeX Ready: Full keyboard shortcuts, menu bar, and mouse hover tooltips for large screens, tablets, and Android-x86/Bliss OS.

📥 Downloads & Installation

Get the latest release from the GitHub Releases Page:

APK Package Target Architecture Typical Devices
fparted-v1.0.0-arm64-v8a.apk (Recommended) 64-bit ARM (aarch64) Modern Android phones & tablets (Snapdragon, Dimensity, Tensor, Exynos)
fparted-v1.0.0-armeabi-v7a.apk 32-bit ARM (armv7) Older Android devices and legacy hardware
fparted-v1.0.0-x86_64.apk 64-bit x86 (x86_64) Android-x86, Bliss OS, Waydroid, and PC emulators
fparted-v1.0.0-universal.apk All architectures Contains native libraries for all supported ABIs

🔑 Superuser Setup Guide

Because fparted communicates directly with raw storage block devices, root access is mandatory:

  • Magisk: When launching the app, tap Grant on the Superuser prompt.
  • KernelSU / KernelSU-Next / SukiSU / ReSukiSU: Open your manager app ➜ Superuser tab ➜ find Partition Manager (vn.shadichy.parted) ➜ toggle Grant Superuser.
  • APatch: Open APatch app ➜ SuperUser tab ➜ enable superuser permissions for Partition Manager.

🚀 Quick Walkthrough: How It Works

1. Select Target Drive    ──►  2. Unmount Active Partitions
           │                                 │
           ▼                                 ▼
3. Stage Desired Actions  ──►  4. Preview Virtual Graph
   (Resize, Format, Move)                    │
                                             ▼
                               5. Review & Confirm Plan (Apply)
  1. Select Drive: Choose internal storage, a MicroSD card, a USB OTG drive, or add a custom block device path from the sidebar.
  2. Stage Operations:
    • Create / Delete Partitions: Partition table support for GPT, MBR/MS-DOS, BSD, Mac APM, Sun, and more.
    • Format Filesystems: ext4/3/2, FAT12/16/32, exFAT, NTFS, Btrfs, XFS, F2FS, Bcachefs, JFS, HFS+, APFS, and Swap.
    • Resize / Move: Shrink or expand partitions with smart sector alignment (1 MiB / 2048 sectors).
    • Health Checks (fsck): Scan filesystems for bad sectors or corruption and perform repairs safely.
    • LUKS Encryption: Create and unlock encrypted containers with LUKS1/LUKS2.
  3. Preview & Apply: Review the planned command sequence in the confirmation dialog before execution.

⌨️ Keyboard Shortcuts (DeX & Desktop)

Shortcut Action Shortcut Action
Ctrl + R Refresh Disks Ctrl + N New Partition
Ctrl + Tab Next Disk Delete Delete Partition
Ctrl + Shift + Tab Previous Disk Ctrl + F Format Partition
Alt + 1 .. 9 Select Disk 1–9 Ctrl + K Check & Repair Filesystem
Ctrl + Shift + T Create Partition Table Ctrl + Z Undo Last Action
Ctrl + , Settings F1 In-App Documentation

🛠️ Building from Source

Prerequisites

Local Quality Checks

# Clone the repository
git clone https://github.com/codex-clamps/fparted.git
cd fparted

# Install dependencies
fvm flutter pub get

# Code formatting & analysis
fvm dart format --output=none --set-exit-if-changed .
fvm flutter analyze

# Run unit and widget test suite (330+ tests)
fvm flutter test

# Build production release APK
fvm flutter build apk --release

🤝 Contributing

Contributions are welcome! Please read our CONTRIBUTING.md guide for safety invariants, privilege boundaries, and test isolation requirements.


📜 Credits & Acknowledgments

fparted stands on the shoulders of giants across the Linux storage, GNU, Bionic packaging, and open-source communities:

🌟 Special Recognition: The Termux Project

Our deepest gratitude goes to the Termux Project and the termux-packages maintainers. Termux built the pioneering cross-compilation toolchain and Bionic compatibility patches that make running GNU storage utilities natively on Android possible.

💽 Upstream Engines & Utilities

  • GNU Parted: Andrew Clausen, Lennert Buytenhek, Jim Meyering, Brian C. Lane (Partition table engine).
  • e2fsprogs: Theodore Ts'o, Andreas Dilger (mke2fs, e2fsck, resize2fs, tune2fs, e2image).
  • dosfstools: Roman Hodek, Werner Almesberger, Andreas Bombe (mkfs.fat, fsck.fat, fatlabel).
  • ntfsprogs-plus / NTFS-3G: Tuxera Inc., Jean-Pierre André, Szabolcs Szakacsits (mkfs.ntfs, ntfsresize, ntfsfix).
  • btrfs-progs: Chris Mason, David Sterba, Josef Bacik (mkfs.btrfs, btrfs check).
  • xfsprogs: SGI, Dave Chinner, Eric Sandeen, Darrick J. Wong (mkfs.xfs, xfs_repair).
  • f2fs-tools: Samsung Electronics, Jaegeuk Kim, Chao Yu (make_f2fs, resize.f2fs, fsck.f2fs).
  • util-linux: Karel Zak, Christian Ehrhardt (blkid, mkswap, losetup, mount, umount).
  • GNU Coreutils: Torbjörn Granlund, David MacKenzie, Paul Eggert, Jim Meyering (dd, test).
  • exfatprogs: Samsung Electronics, Namjae Jeon, Hyunchul Lee (mkfs.exfat, fsck.exfat, exfatlabel).
  • cryptsetup: Milan Broz, Ondrej Kozina (LUKS dm-crypt engine).
  • bcachefs-tools, jfsutils, hfsprogs, erofs-utils, squashfs-tools, and libisofs.

📱 Framework & Root Ecosystem

  • Flutter & Dart: Google and the Flutter open-source community.
  • Android Open Source Project (AOSP): Google and AOSP contributors.
  • Android Root Community: John Wu (@topjohnwu / Magisk), Jason Donenfeld, weishu & kernel root community (KernelSU, KernelSU-Next, SukiSU, ReSukiSU, and APatch / bmax121).
  • MkDocs & Material for MkDocs: Martin Donath (@squidfunk).

📄 License

fparted is licensed under the GNU General Public License v3.0 (GPL-3.0). See LICENSE for full details.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages