It's easy, once you know how to
I'm still a smart-phone-avoider (mostly because Google and most the others are observing users). But I feel the need to get known, what can be done with Android while not having Google-Apps and other surveillance installed. So I got hand on a Samsung S3 mini (GT-I8190) for testing. Well, the mini is not such a good choice, as it is not officially supported by CyanogenMod.
It took me some hours to fiddle out, how to install the custom ROMS. The official website for the unofficial port was not much of a help: The tutorials are talking about "JOdin3" – which requires a newer version of Java than I have installed – and hints or instructions for other methods are fragments only.
So here is, how it worked for me:
First prepare the phone
Please note: I did not care for the data on the phone. If you do, I strongly suggest making a backup first.
Factory reset the phone
Get heimdall, a utility to flash firmware (aka ROMs) onto Samsung Galaxy S devices. For me version 1.4.0 (released June 2013) worked fine – it was already included in my Linux distribution. The GUI frontend showed to be of no big help, as the archives do not contain the required firmware.xml file.
Download the image-archive for "odin" (for me it'S been cm11.0_golden.nova.20140707.ODIN_TWRP.zip, with "ODIN_TWRP" being the important part. This zip-archive contains a *.tar.md5 (sic!) file, which itself contains *recovery.img, boot.img and system.img.
TWRP stands for the teamwin recovery tool. It may not be required for installing CyanogenMod on the S3 mini, but it's much easier to use than the standard recovery tool.
Extract the zip-archive and the contained .tar.md5:
unzip cm11.0_golden.nova.20140707.ODIN_TWRP.zip tar xf cm11.0_golden.nova.20140707.ODIN_TWRP.tar.md5
Turn off the phone, and then press the VOL- & HOME & POWER buttons combination to get into the Download-mode.
Connect the phone to you computer (if not already done :-) and use these commands to get a list of partitions (I assume) from the phone.:
PITFILE=samsung-s3-mini-GT-I8190.pit heimdall download-pit --output $PITFILE heimdall print-pit --file $PITFILE 2>&1 \ | grep -iE -B1 'Partition Name|Flash Filename' \ | less
In this list, spot recovery.img, boot.img and system.img. For me this contains:
File Size (Obsolete): 0 Partition Name: Kernel Flash Filename: boot.img -- File Size (Obsolete): 0 Partition Name: Kernel2 Flash Filename: recovery.img -- File Size (Obsolete): 0 Partition Name: SYSTEM Flash Filename: system.img
Now flash the images onto the phone. Mind to adopt the partition names like --Kernel to the ones you got in the list above.:
heimdall flash --Kernel boot.img --Kernel2 recovery.img --SYSTEM system.img
You can leave of the recovery image if you don't like teamwin. But it speeds up things only a few seconds.
Reboot the phone (it it does not automatically) and wait until boots completely. This may take 2 minutes or so.