If you have a rooted phone you can edit the
default.prop file to bring the "No Sound" back to the Shutter Sound menu.
Login to the shell using adb (part of the Android SDK), then switch to super user mode
$ adb shell # su
Note - depending on how your phone is rooted you may need to confirm that "Unknown Application" can become super user - make sure your phone is unlocked and the screen visible before typing SU then accept this when prompted or it will just echo the commands out.
Mount the System Drive in read write mode, and copy default.prop to your SD Card
# mount -o remount,rw -t yaffs2 /dev/mtdblock2 /system # cp /system/default.prop /sdcard/
Copy the file to your desktop (I used SWIFTP), then change the line (I used Notepad++ so the line endings weren't mangled) which reads
Copy the file back to your SD card then
# cp /sdcard/default.prop /system/
Exit the ADB Prompt
$ CTRL + C
Reboot your phone.
When you next go into the camera app choose the settings menu and the "No Sound" option should be available.
Alternatively after mounding the /system partition overwrite the
shutter.ogg by issuing the following commands
# cd /system/media/audio/camera # cp sound0/no_sound.ogg sound3/shutter.ogg
Kill the camera app if it's already running, start the camera app, choose "sound3" and then you'll have a silent shutter.
Works on my T-Mobile-UK customised Sony Ericsson Xperia X10i, but should work on most (all?) rooted Android phones.
If you actually enable the "No Sound" option, not only does it disable the really loud camera shutter racket but it means when listening to music it no longer goes silent to allow the shutter sound to be played, and it seems to take photos much faster. Changing the .ogg files doesn't gain you these advantages.
Thanks to zephyrix's hint at http://forum.xda-developers.com/showthread.php?t=713295 and for j4mm3r's note on how to make /system writeable.