2013年2月24日

HTC J butterfly (HTL21) の標準カメラを無音化した

HTL21の標準カメラを無音化

はじめに

最初に言いますが,絶対に 悪用しないで下さい
また,この記事の操作に関しては完全に自己責任で行って下さい.

当ブログでは,端末がどのような状態になっても一切の責任を負いません

これまでの端末

これまでのカメラ無音化と言えば,大体が次の手順で行っていました.

  1. Root を取る (/system が RW マウント出来る)
  2. シャッター音の無音ファイルを入手する
  3. カメラアプリが読み出す音声ファイルを無音ファイルと差し替える
    (多くの場合, /system/media 以下にあります)
  4. パーミッションを変更 (大体 644 でOK)
  5. リブート
前の端末はこれで無音化してました.

HTL21 標準カメラ

HTL21 Rooted 後,以前と同じ方法で試しましたが,うまくいきませんでした.
Root 取っていない方は先に取得して下さい => "HTC J BUTTERFLY (HTL21) 買った感想とか,ROOT 化とか"

どうやら最近の端末はカメラアプリケーションの apk 本体に音声ファイルが同梱されている為,メディアファイルを差し替えても意味がないようです.

そこで,apk 本体の内部ファイルを差し替える方法で無音化しました.

前提条件

  • 端末が Rooted 状態である
    • S-OFF してても,してなくても良い
  • Android SDK がインストールされている (adb が使える)
    • adb にパスが通ってない or 使えない人は調べてインストールして下さい
  • コマンドラインからの操作を自己責任で行える
  • 当方の環境
    • Windows7 x64
    • S-OFF はしてない
こんな感じ.

手順

私は S-OFF していないので,基本的に端末をリカバリにして,PC側で操作します.
1./system のマウント
まず,端末とPCをUSBケーブルで接続し,USBデバッグをONにします.
そして,コマンドラインから次のコマンドを実行し,端末をリカバリモードにします.
$ adb reboot recovery
リカバリで端末が起動したら,次のような画面が出ます.
(画質荒くてさーせん)

[mounts and storage] => [mount /system] を選択し,/system をマウントします.
( [mount /system] が [umount /system] になってれば,マウントできています )

ちなみにコマンドラインから /system をマウントする事も可能です.
$ adb shell
# mount /system
2.カメラアプリの編集
/system をマウントしたら,PC側にカメラアプリを引っ張ってきます.
システムアプリのパスは [/system/app] です.
$ adb pull /system/app/Camera.apk
4145 KB/s (3010225 bytes in 0.709s)

;; ワーキングディレクトリに Camera.apk がある事を確認
$ dir
Camera.apk

;; ちなみに /system がマウント出来てないと,次のエラーが出ます
$ adb pull /system/app/Camera.apk
remote object '/system/app/Camera.apk' does not exist
次に,Camera.apk を 7zip で開き,ファイルを差し替えます
7Zipは圧縮ファイルを展開せずに中身を差し替える事が可能なので,apk をいじる際にはすごく役立ちます.
インストールしていない人はインストールして下さい.

また,Camera.apk はいざという時の為にバックアップを取っておきましょう.
そして,[Camera.apk/res/raw] にある音声ファイルを差し替えていくのですが,これを無音ファイルに差し替えると,再度カメラアプリを立ち上げた際に強制終了します.

そのため,0バイトのダミーファイルを作成します.
;; Windows の場合
$ fsutil file createnew camera_click.ogg 0

;; Cygwin or Linux の場合
touch camera_click.ogg
作成したダミーファイルを音声ファイルと差し替えていきます.
7-Zipのウィンドウから [res -> raw] と開き,そこにダミーファイルをドラッグ&ドロップし,上書きダイアログが出るので OK を押します.

また,本来は自分の消したい音声だけ差し替えればいいのですが,私は面倒だったので全部ダミーファイルに差し替えました.

3.端末へプッシュし,リブート
差し替えが終了したら,新しい Camera.apk を端末にプッシュし,パーミッションを変更します.
;; 端末へプッシュ
$ adb push ./Camera.apk /system/app/

;; パーミッションの変更
$ adb shell chmod 644 /system/app/Camera.apk
心配なら adb shell でログオンし,ls -l /system/app/Camera.apk でパーミッションを確認して下さい.

最後に端末をリブートします.
$ adb reboot

リブート後,標準カメラアプリを起動し,フォーカスロックやシャッター音が鳴らない事を確認して下さい.

さいごに

これで標準カメラのフォーカスロック音やシャッター音が無音化されました.

そもそもこの標準カメラの音うるさいですよね,特にフォーカスロック.
フォーカスロック音に気付いてうち愛犬はいつもこんな感じの微妙な表情しか撮らせてくれませんでした.
しかし,無音化された事によっての愛犬の寝顔が撮れるようになりました!

ちなみにこの標準カメラ,起動中にLEDランプが点灯しない為,無音化するとマジで画面を見ないとカメラモードなのか判断が付かなくなります.
そのため,愛犬を撮影するなどの合法的な手段にだけ使用して下さいね.

0 コメント:

コメントを投稿