No Gravatar

My Samsung Galaxy S2 (SPH-D710) had an incredibly annoying feature: the camera sounds could not be silenced, no matter what I did.  Some brief searching proved that I was not alone.  It appears as though there are laws in the works in the U.S. that would make silent cell phone cameras illegal (contact your representatives if you feel so inclined), so perhaps this nag was introduced in preparation for impending legislation.

In my opinion, there should be no reason to outlaw silent cell phone cameras.  Just as there are illegitimate reasons for silencing a cell phone camera, there are as many legitimate ones.  So, I worked to find a way to silence mine.

Root Access

The first step was to root my phone.  I found this thread that gave me a pretty easy way to root my phone.

The next step was to mount the file system in read/write mode.  If you don’t mount the file system as writable, you’ll get errors saying the file system is read-only.  Mounting the file system as writable can be accomplished in one of at least two ways (this is true for all of the steps that follow, so I won’t mention it again):

  • Use a root explorer app available on Google Play; I used Estrongs, Inc. ES File Explorer File Manager, which is free
  • Or, perform shell commands
    • This method requires the Android SDK, available from Google.

Mount File System as Writable Using ES File Explorer File Manager

  1. Run ES File Explorer File Manager
  2. Press the Menu key to show the application menu
  3. Select the Settings option
  4. Scroll to the bottom of the list, under Other Settings
  5. Select the Root settings menu option
  6. Tick on the “Root Explorer” and “Mount File System” options
    • Select “Yes” or “Allow” to grant root permission to ES File Explorer File Manager, when prompted

Mount File System as Writable Using Shell Commands

Note: My Android SDK is installed to C:\Program Files (x86)\Android, but your installation directory may vary.


C:\Program Files (x86)\Android\android-sdk\platform-tools>adb shell
$ su
su
# mount -o remount rw /system
mount -o remount rw /system
#

Overwrite Existing Camera Sounds

Once I had root access, and mounted the file system as writable, I found this silent audio file from this site that I could replace the unwanted camera sound files with.  It’s just a simple audio file that has no sound.  There are several camera sounds, each of which are played at various function calls of the camera:

  • Cam_Start.ogg
  • Cam_Stop.ogg
  • Shutter_01.ogg
  • VideoRecord.ogg
  • camera_click.ogg
  • camera_click_short.ogg

I renamed the existing camera sound files to something else (i.e. I always append .orig to my files so I don’t lose the originals).  You can do this either through a root explorer, or shell command lines.

Rename Existing Audio Files Using ES File Explorer File Manager

  1.  Run ES File Explorer File Manager
  2. Navigate to the /system/media/audio/ui directory
  3. Long-press each audio file to show the Operations menu
  4. Select the Rename option
  5. Provide a new name for the file and press OK
  6. Repeat for each unwanted audio file.

Rename Existing Audio Files Using Shell Commands

  1. Change to the /system/media/audio/uidirectory:
    • # cd /system/media/audio/ui
  2. Use the mvcommand to rename each unwanted audio file, in this manner:
    • # mv Shutter_01.ogg Shutter_01.ogg.orig
  3. Repeat the mv command for each unwanted audio file.

After renaming the unwanted audio files, I downloaded the silent.ogg audio file, which placed it in the /sdcard/download directory.  Then I copied the silent.ogg audio file in place of each unwanted audio file, renaming it each time to match exactly the original name of the unwanted audio file.

Copy silent.ogg In Place Of Unwanted Audio Files Using ES File Explorer File Manager

  1. Run ES File Explorer File Manager
  2. Navigate to the /sdcard/download directory
  3. Long-press on the silent.ogg audio file to show the Operations menu
  4. Select the Copy option
  5. Navigate to the /system/media/audio/ui directory
  6. Press the Paste shortcut at the top of the screen, or long-press and select the Paste option from the Operations menu
  7. Long-press the silent.ogg audio file to show the Operations menu
  8. Select the Rename option
  9. Provide the original name of the unwanted audio file, exactly as it used to be, then press OK.
  10. Repeat for each unwanted audio file replaced.

Copy silent.ogg In Place Of Unwanted Audio Files Using Shell Commands

  1. # cp /sdcard/download/silent.ogg /system/media/audio/ui/Shutter_01.ogg

Reset File System to Read Only

Finally, I reset the file system back to read only to prevent inadvertent changes to critical files.

Mount File System as Read Only Using ES File Explorer File Manager

  1. Run ES File Explorer File Manager
  2. Press the Menu key to show the application menu
  3. Select the Settings option
  4. Scroll to the bottom of the list, under Other Settings
  5. Select the Root settings menu option
  6. Tick off the “Mount File System” and (optionally) “Root Explorer” options

Mount File System as Read Only Using Shell Commands

After remounting the file system as read only, back out of shell access using Ctrl+D (indicated by ^D in the command window):
# mount -o remount ro /system
mount -o remount ro /system
# ^D
$
$ ^D
C:\Program Files (x86)\Android\android-sdk\platform-tools>

Now enjoy your cell phone camera in golden silence!

Resources

Updates

2012-09-30

The focus event on the camera still makes a sound, and I haven’t been able to locate the source file of the sound; if there is one.  A little searching enlightened me to the fact that Samsung releases much of its product source code.  So now I’m downloading the source code for my SPH-D710 on Gingerbread (EL29): SPH-D710_GB_Update1_Opensource.zip (128 MB).

Not only is this a cool find, but now I’m even more excited about Samsung’s products.  I doubt Apple would be so sure of itself to open source the iPhone.