本記事で紹介する方法は、日本国内では「シャッター音の強制無効化」が電波法令・条例で制限されている可能性があります。
・日本国内向け端末(キャリア版/ SIMフリー国内版)では、システム設定でシャッター音を消すことは原則不可です。
・海外版端末、または root/Shizuku/ADB を用いたシステム書き換えは「自己責任」で行ってください。
・本記事は技術的解説を目的としており、法令違反を助長するものではありません。
「スクショ音もカメラ音も消したい」「Shizuku で settings put system camera_sound_forced 0 を試したけど戻る」「ADB でシステム設定を書き換えたい」——Android でシャッター音を消す「裏技」的手法として知られる Shizuku + ADB によるシステム設定書き換えを、仕組み・手順・リスク・代替案まで網羅的に解説します。
なぜ「設定で消せない」のか?
日本国内で販売されるスマホ(キャリア版・SIMフリー国内版含む)は、「防犯カメラ・盗撮防止」の観点からシャッター音の無音化をシステムレベルで強制しています。これが camera_sound_forced = 1 というシステム設定で制御されており、ユーザー操作では変更できません。
| 端末種別 | シャッター音設定 | 備考 |
|---|---|---|
| 日本国内版(キャリア/ SIMフリー) | 設定に項目なし / オフ不可 | camera_sound_forced=1 固定 |
| 海外版(グローバル/米国/欧州/アジア版) | カメラ設定で ON/OFF 可能 | 出荷時 camera_sound_forced=0 |
| Root済み / カスタムROM | build.prop / settings で変更可 | セキュリティポリシー解除済み |
Shizuku/ADB で settings put system camera_sound_forced 0 を実行しても「即座に 1 に戻る」「再起動で戻る」のは、システムサーバー(SystemServer)が起動時に強制的に 1 に書き戻す処理が組み込まれているためです。
Shizuku とは?なぜ ADB 直叩きと違うのか
Shizuku は「アプリから system ユーザー権限(shell ユーザーより強い)」で API を叩ける仕組みです。通常の ADB(shell 権限)では settings put system が書き込めない/即座に拒否/戻されるケースでも、Shizuku 経由なら system ユーザーとして書き込める ため、一時的にでも値を変えられる可能性があります。
手順:Shizuku 経由で camera_sound_forced を 0 にする
以下は「一時的に無音化したい(スクショ/特定アプリのみ)」場合の手順です。恒久化は後述の「恒久化の壁と対策」を参照。
前提条件
- PC に ADB 環境(platform-tools)導入済み
- 端末で「開発者向けオプション」>「USB デバッグ」ON
- 端末に Shizuku アプリ インストール済み(Play Store / GitHub)
Step 1:Shizuku サーバー起動(ADB モード)
# PC 側で実行 adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh # または Shizuku アプリ内「ADB で起動」ボタンタップ
Step 2:Shizuku 権限で settings 書き込み
# Shizuku サーバー起動後、PC 側で adb shell # shell プロンプトで cmd shizuku su -c "settings put system camera_sound_forced 0" # 確認 cmd shizuku su -c "settings get system camera_sound_forced" # → 0 と返れば成功(一時的
※ cmd shizuku su -c “…” で system ユーザー権限実行になります。
Step 3:即座にカメラ/スクショで確認
この状態でカメラアプリを起動し、シャッターを切って音が消えているか確認してください。多くの国内版では「カメラアプリ起動瞬間」に SystemServer が 1 に戻すため、音は鳴ります。
恒久化の壁と、現実的な対策
なぜ戻るのか(技術的理由)
- SystemServer の init 処理:起動時に Settings.System.putInt(camera_sound_forced, 1) を実行
- ContentObserver 監視:Settings.System.CONTENT_URI を監視し、0 に変わると即 1 に書き戻し
- CameraService 側のガード:カメラ起動時に強制的に音鳴らしフラグを立てる
- SELinux ポリシー:system_server 以外の書き込みを audit/deny
対策 A:Magisk モジュールで「書き戻しフックを無効化」
Root 前提 ですが、最も確実なのは Magisk モジュール「Camera Sound Fix / No Shutter Sound」等を導入し、SystemServer の書き戻しロジックをフック(Xposed/LSPosed)または build.prop / default.prop で上書きする方法です。
- Magisk + LSPosed(Zygisk)導入
- 「CameraSoundFix」等のモジュールをインストール・有効化
- 再起動後、カメラ設定に「シャッター音」項目が出現、または無音化
対策 B:カスタムROM(LineageOS / Pixel Experience 等)
ブートローダーアンロック可能な端末(Pixel, 一部 Xiaopo, Nothing, Motorola 等)なら、カスタムROM 焼きで「海外版と同等の設定項目」を得られます。国内版 Galaxy/Xperia/AQUOS はブートローダーアンロック不可が多く非現実的。
対策 C:無音カメラアプリを使う(Root 不要・最も現実的)
システム設定を弄らず、アプリ側で音を出さない 方式です。以下が定評あり。
| アプリ | 特徴 | 対応 |
|---|---|---|
| Microsoft Pix / Google Camera (GCam) | シャッター音オフ設定あり(一部版) | Root不要 |
| Open Camera | 設定>「シャッター音」で無音化可能 | Root不要 |
| Simple Camera / Footej Camera | 軽量、無音撮影対応 | Root不要 |
| ScreenMaster / Screenshot Touch | スクショ音も消せる | Root不要 |
※ 標準カメラアプリの音は消せませんが、「無音で撮りたい用途」なら専用アプリ運用が最も安全・確実です。
対策 D:物理的・運用で回避
- マナーモード/サイレントモード+音量ゼロ(機種によりシャッター音のみ鳴る仕様あり)
- イヤホン接続時のみ無音になる機種あり(Galaxy 旧機種等)
- 動画撮影モードならシャッター音なし(静止画切り出し可)
- 連写/バーストモードで最初の1枚だけ音、後は無音になる機種あり
Shizuku で「他に何できる?」カメラ音以外の実用設定
Shizuku 権限(system ユーザー)なら、以下の settings put system/secure/global も書き込めます。カメラ音以外で「国内版で制限されてる項目」を緩和できる代表例:
| 設定キー | 効果 | コマンド例 |
|---|---|---|
| screen_off_timeout | 画面消灯時間を 30分/無制限に | settings put system screen_off_timeout 1800000 |
| stay_on_while_plugged_in | 充電中スリープさせない | settings put global stay_on_while_plugged_in 3 |
| adbd_enabled | ADB 常時有効化(再起動後も) | settings put global adb_enabled 1 |
| show_taps / pointer_location | タップ表示/ポインタ位置(開発用) | settings put system show_taps 1 |
| animator_duration_scale | アニメーション高速化(0.5x/0x) | settings put global animator_duration_scale 0.5 |
| wifi_scan_interval | Wi-Fi スキャン間隔延長で省電力 | settings put global wifi_scan_interval 180 |
| captive_portal_mode | キャプティブポータル検知無効化 | settings put global captive_portal_mode 0 |
実行はすべて cmd shizuku su -c “settings put … で。再起動で戻る項目も多いので、Tasker/Automate/MacroDroid 等で起動時自動実行するのが定石です。
機種別・国内版の傾向まとめ
| メーカー/シリーズ | Shizuku で camera_sound_forced=0 | 備考 |
|---|---|---|
| Galaxy (国内版) | ❌ 即戻り / カメラ起動で戻り | Knox/SELinux 強固、Root でも Knox trip リスク |
| Xperia (国内版) | ❌ 即戻り | TA パーティションロック、ブートローダー不可 |
| AQUOS / arrows | ❌ 即戻り | 独自セキュリティ、Root 情報少 |
| Pixel (日本版) | △ 一時的可 / 再起動で戻り | ブートローダーアンロック可 → カスタムROM現実的 |
| Nothing Phone / Motorola | △〜◯ 一部機種で設定項目あり | グローバル版近い仕様、アンロック可 |
| Xiaomi / OPPO / vivo (日本版) | ❌ 即戻り | HyperOS/ColorOS/FuntouchOS で強制 |
Q&A
CameraService がカメラセッション開始時に AudioSystem::setForceUse(AUDIO_POLICY_FORCE_FOR_SYSTEM, …) を叩き、強制的にシャッター音再生パスを有効にします。このロジックは frameworks/av/services/audiopolicy および frameworks/base/services/core/java/com/android/server/camera/CameraService.java にあり、settings 値に依存しない「ハードコードされた挙動」です。Root でこのメソッドをフック(Xposed/LSPosed)しない限り、Shizuku だけでは防げません。
国内版の設定アプリ(com.android.settings)は、camera_sound_forced == 0 のときのみ「シャッター音」スイッチを表示する実装です。しかし SystemServer が即 1 に戻すため、スイッチが出現しても即消える/操作しても反映されません。Root で SystemServer の書き戻しを止めるか、設定アプリ自体を書き換えたカスタム版(Magisk モジュール等)を入れる必要があります。
スクショ音は camera_sound_forced とは別で、settings put system screenshot_sound_enabled 0 または settings put global screenshot_chord_enabled 0 で消せる場合があります。Shizuku で実行してみてください。これも国内版では戻る可能性大。確実なのは「無音スクショアプリ(ScreenMaster 等)」または「マナーモード+音量ゼロ」運用です。
・ADB モード:PC から adb shell sh start.sh で起動。shell ユーザー権限から system ユーザー権限へ昇格(cmd shizuku su)。再起動で止まる。
・Root モード:Magisk/KernelSU で Shizuku に root 権限付与。端末単体で常駐可能、再起動後も自動起動。
カメラ音無音化のように「系統書き込みが即戻される」ケースでは、Root モード+常駐+起動時自動実行(Tasker 等)で「書き戻しより速く 0 に戻し続ける」運用も理論上可能ですが、バッテリー消費・競合リスク大です。
Play Store にある「シャッター音 無音化」系アプリの多くは、単にメディア音量を一時的に 0 にする / 無音カメラ機能を提供する / オーバーレイで音を消す だけで、システム設定 camera_sound_forced を書き換えることはできません(権限不足)。悪質なものは広告表示・権限過剰要求・データ収集の可能性があります。Open Camera 等の実績ある無音カメラアプリを使うのが無難です。
理屈上は出ますが、モデム/基地局/VoLTE/おサイフケータイ/防水/認証 等、国内版固有のパーティション(persist, modem, fsg, fsc 等)と整合が取れず、通話不可・Felica不可・電波掴まない・起動ループ等のリスクが高いです。Pixel 等「同一ハードで地域別ファームのみ」の機種なら比較的安全ですが、Galaxy/Xperia/AQUOS 等は別ハード・別パーティション構成のため非推奨です。
まとめ:シャッター音を消す「現実的な選択肢」
- 無音カメラアプリ(Open Camera 等)を使う → Root不要、即解決、最も安全
- Pixel 等ブートローダーアンロック可機種を買い、カスタムROM/海外版ROM焼き → 恒久解決、ただし端末代・手間・リスクあり
- Magisk + LSPosed + CameraSoundFix モジュール → Root 前提、国内版でも一部機種で可、Knox/保証/OTA リスクあり
- Shizuku + Tasker で起動時毎回 camera_sound_forced=0 書き込み → 一時的、競合・バッテリー・不安定、実用外れ
- 物理・運用回避(マナーモード/動画切り出し/イヤホン/連写) → その場しのぎ
結論として: 国内版 Android で「標準カメラアプリのシャッター音を恒久的に消す」のは、Root・ブートローダーアンロック・カスタムROMのいずれかを伴わない限りほぼ不可能です。Shizuku/ADB で camera_sound_forced=0 を書き込んでも、SystemServer が即座に戻すため実用になりません。「無音で撮りたい」なら 無音カメラアプリを併用する のが、リスクゼロで最も確実な回答です。