99 lines
3.2 KiB
Markdown
99 lines
3.2 KiB
Markdown
# 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
|