An Xposed/LSPosed module that replaces the Google Camera shutter sound with your own audio clip.
Source code: https://github.com/vitalto/gcam-shutter-sound
Google Camera plays its shutter through SoundPool, loading the bundled
resource R.raw.camera_shutter. This module hooks SoundPool.load(...) inside
the GCam process: when GCam loads that resource, the module loads your clip
instead and returns its sample id, so GCam's own play() emits your sound.
- Rooted Android with LSPosed or a compatible framework (e.g. Vector).
- Google Camera (
com.google.android.GoogleCamera). - Tested on Pixel 9 (Android 15).
- Download the APK from Releases (or build it, see below) and install it.
- In your Xposed manager, enable the module and set its scope to Google Camera.
- Force-stop and reopen Google Camera, then take a photo.
vector-cli modules enable io.github.vitalto.gcamshutter
vector-cli scope set io.github.vitalto.gcamshutter com.google.android.GoogleCamera/0Replace app/src/main/assets/custom_shutter.ogg with your clip (keep the file
name) and rebuild. SoundPool detects the format from content, so .ogg,
.mp3 or .wav all work under that name — .ogg is recommended for a short,
latency-free click.
./gradlew :app:assembleRelease
# -> app/build/outputs/apk/release/app-release-unsigned.apk (sign it)Needs only the Android SDK command-line tools and a JDK:
export ANDROID_SDK=/path/to/Android/Sdk
bash tools/build.sh
# -> build/GCamCustomShutter.apk (signed with a throwaway key)MIT — see LICENSE.