[Android Apps and Games] FrozenCow:
DriveDroid allows you to boot your PC from ISO/IMG files stored on your phone. This is ideal for trying Linux distributions or always having a rescue-system on the go... without the need to burn different CDs or USB pendrives. The paid version of DriveDroid does not include ads and helps the developer.

DriveDroid also includes a convenient download menu where you can download USB-images of a number of operating systems from your phone.

You can also create USB-images which allows you to have a blank USB-drive where you can store files in. Another possibility is to use tools on your PC to make a bootable USB-drive out of the blank image that DriveDroid created.

DriveDroid (free)

DriveDroid (paid)

Website

Changelog and downloads

List of distributions available in DriveDroid

Donate

IRC (#drivedroid on chat.freenode.net)

Beta

To participate in the beta join the Google Group here: https://groups.google.com/d/forum/drivedroid

After that join the beta of either DriveDroid (Free) or DriveDroid (Paid)

Distrowatch image repository

If you are missing a certain distribution or want more images available in the download list, you can add download repositories. At the moment I have made a repository for Distrowatch. These images are not officially supported, so they might not work for CD or USB booting.

Go to DriveDroids preferences, under "Image repositories" and add the following URL: http://softwarebakery.com/apps/drivedroid/repositories/distrowatch.json

USB Mass Storage (UMS)

DriveDroid relies on the kernel of Android, in particular the USB Mass Storage (UMS) feature. It allows your phone to act as an USB-drive and have a device (SDcard) or file (ISO/IMG) be used as the content for that emulated drive.

Different Android devices implement this feature differently. Most modern devices do not have UMS enabled by default, but it is supported by the kernel. I've added a option to DriveDroid to change the USB-mode for devices that do not support UMS by default, but no guarantees. I'm getting very mixed reports of devices working and not.

I need all the help I can get to fix this problem. Hopefully we can figure out some method to enable UMS in a stable way.

Hybrid-ISOs

Since most phones only support emulating USB-drives, DriveDroid will not act as an CD-drive. This means that not all ISO files will work, only hybrid-ISOs and IMG files. Hybrid-ISOs are specially crafted ISOs that is used on many modern Linux-distributions. DriveDroids downloadlist contains most of the distributions I've found that do have hybrid-ISOs.

This is just to notify you that you have to convert non-hybrid ISOs by writing the ISO to the emulated USB-drive. You can get a blank emulated USB-drive by creating a blank image through DriveDroids + menu.

Tutorials

Since some popular uses are not available out-of-the-box, I've written a few tutorials on my website that handle some of those uses:

Using Rufus to burn any ISO to DriveDroid *Recommended*

Windows installation on DriveDroid

Install Hirens Boot CD on DriveDroid (download the pre-built Hirens Boot CD image here)

Shrinking images on Linux to save space on your phone

USB-drive and CD-drive emulation

These two modes allow your phone to act as an USB-drive or as an CD-drive. Most devices only support USB-drive emulation. Some devices only support CD-drive emulation. To get both USB-drive as well as CD-drive emulation on your phone you need a patched kernel (see below).

With USB-drive emulation it is possible to boot IMG files and most Linux-based ISO. It also allows you to write to the disk, which allows you to create data-disks as well as install an OS onto the USB drive. The downside of this mode is that some ISOs will not boot, since those ISOs are created for CD-drives.

With CD-rom emulation it is possible to boot all CD-based ISOs.

So, having both USB-drive emulation as well as CD-rom emulation is preferable.

Some roms with a range of supported devices have patch reviewing systems in place where I periodically submit patches to new devices. You can check what kernels have the right patches in their patch review system. To know which kernel your device is using, check out this list to see kernels are used by what devices.

CyanogenMod: supported kernels

SlimRoms: supported kernels

CarbonROM: supported kernels

aicp-rom: supported kernels

Nameless-ROM: supported kernels

Other custom kernels that have the right CD-rom patches applied are:

Dorimanx Kernel 8.33 on stock and AOSP/CM roms for the Samsung Galaxy S II (I9100)

Dorimanx Kernel 9.33 on AOSP/CM roms for the Samsung Galaxy S II (I9100)

CyanCore Kernel v2.8.6 by ts1506 for the Samsung Galaxy S (I9000)

BMS Kernel by GideonX for Samsung Galaxy S3 Sprint (d2spr)

BMS Kernel by GideonX for Samsung Galaxy S3 AT&T (d2att)

BMS Kernel by GideonX for Samsung Galaxy S3 Verizon (d2vzw/d2usc)

Patched stock kernel by porear for Samsung Galaxy S3 T-Mobile

GearKernel 1.0.4 and higher for Samsung Captivate

GearKernel 1.0.4 and higher for Samsung Galaxy S i9000 and i9000B

GearKernel 1.0.4 and higher for Samsung Vibrant

DooMKernel for Xperia Z

DooMKernel for Xperia Z1

Devil2 kernel for Samsung Galaxy Note 2 (GT-N7100)

X-NOTE Leonardo Edition for Samsung Galaxy Note 3 (N9005)

ThunderZap for Xperia L

ShinTo for Samsung Galaxy Note 3

Unofficial CyanogenMod-compatible Galaxy Note 3 kernel by unic09

Basel kernel (stock) for Samsung S Duos (s7562) by baselsayeh

AEL kernel for Samsung Note 3 by friedrich420

FIRE-ICE kernel for Nexus 9 by USBhost

ElementalX for Nexus 5 (hammerhead)

Kangaroo Kernel for HTC One

WR-Kernel for Wiko Rainbow

Unikernel for Samsung Galaxy S6/S6 Edge

CleanSlate for HTC 10

If this list is missing any rom/kernel that has the feature, please contact me.

If your favorite kernel is not supporting this feature, direct the kernel developer to this section.

If you know your way around kernel code and patching, you can get the patches here:

Patch to allow applications (like DriveDroid) to switch between USB and CD-mode

Patch to fix booting from the emulated CD-rom drive (only needed for Android 2.x kernels)