I want to install marshmallow on my galaxy s3 for app developing. How do I do this?

The devices storage is partitioned. Most android devices have following partitions.

System ROM (this is what boots most of the time, you replace this completely when changing a ROM)

Recovery partition (can boot from here, this partition contains software that alters all the other partitions. The stock recovery can only do official samsung updates. You will replace this with a custom recovery like TWRP that can flash custom roms, do backups, format other partitions , etc ... )

Fastboot mode/partiton ( can boot from here, I think this is read only to try to prevent phone bricking. This tool only allows you to do low level operations on your device from a computer. It is used to recover the other partitions. You will probably use it to flash TWRP to the recovery partition.)

Data partition (contains ROM settings and apps, this is wiped on factory reset, delete this after you change a ROM to prevent invalid device settings from crashing the new ROM)

Internal storage (also known as emulated SD card, this contains stuff you put over USB, you will put the new ROM zip files here before flashing them, this partiton has no ROM specific data, can not crash the current ROM)

External storage (optional sdcards or usb mass storage devices, it's role is the same as internal storage)

Cache (aka dalvik cache, this may have residual data from old rom, format this partition after changing the rom)

Custom firmware partitions (these are different for each device, and must never be altered/deleted. They are not overidden by custom roms. They contain uniquie data for your device that can not be recovered. Like the IMEI number. For samsung devices you can do an EFS backup for some of this data. )

Sorry for typos

/r/androiddev Thread Parent