# ISO Droid Android app for mounting ISO/IMG files as USB mass storage or CD-ROM devices on rooted Android devices. ## Screenshots Screenshots are available in the [docs/screenshots/](docs/screenshots/) directory. ## Features - Mount ISO/IMG files as USB mass storage or CD-ROM - Create blank IMG files for writable USB drives - Read-only or read-write mount options - Persistent notification with quick unmount button - Browse and select ISO/IMG files from device storage - OS-specific icons for popular distributions (Linux, BSD, etc.) - Download links to popular operating systems (Linux, BSD, Windows, Recovery tools) - Rename and delete files - Material 3 dynamic theming with dark mode support ## Requirements - Rooted Android device (Magisk, KernelSU, APatch, etc.) - USB gadget support (configfs or sysfs) - Android 8.0+ (API 26) ## Installation ### Option 1: Install APK (Recommended) 1. Download the latest ISO Droid APK from releases 2. Install the APK 3. Grant root access when prompted 4. The app includes a bundled isodrive binary 5. Place your ISO/IMG files in `/sdcard/isodrive/` (or configure a different directory in settings) ### Option 2: Install with Magisk Module 1. Install the [isodrive Magisk module](https://github.com/nitanmarcel/isodrive-magisk/releases/latest) 2. Install the ISO Droid APK 3. Grant root access when prompted 4. Place your ISO/IMG files in `/sdcard/isodrive/` (or configure a different directory in settings) ## Building from Source ### Prerequisites Before building the app, you need to obtain the `isodrive` binary: 1. The `isodrive` binary is compiled from [nitanmarcel/isodrive](https://github.com/nitanmarcel/isodrive) 2. Place the compiled binary at `app/src/main/assets/bin/isodrive` before building 3. The binary must be executable and compiled for the appropriate Android architecture ### Build Steps ```bash # Clone the repository git clone https://github.com/yourusername/ISODroid.git cd ISODroid # Ensure isodrive binary is present ls -la app/src/main/assets/bin/isodrive # Build the APK ./gradlew assembleRelease ``` ## Usage 1. Open ISO Droid 2. Select an ISO/IMG file from the list 3. Choose mount options (Mass Storage or CD-ROM, Read-Only or Read-Write) 4. Tap Mount 5. Connect your phone to a PC via USB - it will appear as a USB drive/CD-ROM 6. Unmount via the app or notification when done ### Creating Custom IMG Files 1. Tap the "+" button in the top bar 2. Enter a filename and size 3. The app will create a blank IMG file that can be mounted as a writable USB drive 4. Format it on your PC after mounting (FAT32, exFAT, NTFS, etc.) ## Credits - [isodrive](https://github.com/nitanmarcel/isodrive) by nitanmarcel - The CLI tool that powers ISO Droid - [ISODriveUT](https://github.com/fredldotme/ISODriveUT) by fredldotme - Original inspiration for isodrive - OS icons from [Simple Icons](https://simpleicons.org/) ## Technical Details ISO Droid uses the `isodrive` binary to interface with the Linux USB gadget subsystem. The app: - Bundles the isodrive binary in `app/src/main/assets/bin/` - Extracts and executes it with root permissions at runtime - Supports both configfs (modern) and sysfs (legacy) USB gadget modes - Dynamically detects available OS icons for file display ## License MIT