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ランプが点灯しない為,無音化するとマジで画面を見ないとカメラモードなのか判断が付かなくなります.
そのため,愛犬を撮影するなどの合法的な手段にだけ使用して下さいね.

2013年2月15日

HTC J butterfly (HTL21) 買った感想とか,Root 化とか

卒論発表も終わり,時間も出来たのでちょくちょくブログ書きたいです.

だいぶ遅いネタです.

HTC J butterfly (HTL21)

HTC J butterfly (HTL21) 買いました.
っていうか,年明け前には買っていたのですが,時間がなかったのでまとめた記事は書いてませんでした.
外観などはググれば死ぬほど出てくるので,個人的な使用感などを.

スペック

文句ないです.
1.5GHz のクアッドコア + 2GB RAM なので,しばらくは余裕で戦えるスペックでしょう.

さらに,ディスプレイは 5インチの Full HD(1920x1080) と同時期のモデルでは突出したスペックの高さです.春モデルとも十分戦えるスペックなのでは?と思います.

また,ディスプレイがすんごくキレイなので保護シールも張ってません.
あれで動画を見ると,今までスマフォで動画を見る文化がなかった私ですが,ついつい出先などで動画を見たくなってしまいます.

ちなみに,前に使っていた機種である IS06 とベンチを比較するとこんな感じ.
HTC J butterfly IS06
左が HTL21 ,右が IS06 です.
ちなみに,IS06 側は 1.2GHz にクロックアップ (OC) してこの結果でした.
(この画像はスクショなのですが,これだけでも解像度の違いがわかるでしょ?)

IS06はちょうど2年前の冬モデルなので,2年という年月の差を感じます.
やはり,ハードウェアの進化はものすごいですね.

回線

au の LTE 回線です. 正直,思っていたよりも全然速いです.
これは生活エリアによりますが,大体どこでも 10Mbps 以上は出してくれるんじゃないでしょうか.

東京都八王子辺りで計測するとこんな感じでした.
下り約 25Mbps と速いですね.
出先でブラウジングや Dropbox のファイルをダウンロードする時など物凄く快適です.

出先でスマフォを使う機会が多い人には,これだけでも機種変した価値はあるのではと思います.

カメラ

買ってびっくりしたのがカメラの性能ですね.
これは完全にどうでも良いと思っていたので盲点でした.

すんごいキレイですね.わりと写真撮るのが楽しくなりました.

しかも,顔検知機能や最大99連写とか一生使いそうにない機能まで付いてました.
ちなみに,一回テストで連写しまくって遊んでたら Dropbox のインスタントアップロードで全写真がアップロードされ,Dropbox の容量を圧迫するという事件が発生しました.

電池持ち

購入前からだいぶ気になっていた電池持ち.

これについては,格段良いわけではないです.
そりゃ,一昔前のノーパソと同じか,それ以上のスペックですからしょうがないと思ってます.
しかし,普通に使う分には一日持ちますし,切れそうになったらモバブ使えばいいのです.

省電力モード

この端末には省電力モードとか言うのが付いていて,最初は通知バーの一番上にあってイラっとしたのですが,この省電力モードが結構優秀.

CPUのコア数や照度などを制限する事によって,省電力を図るモードのようですが,これを ON にしておくと,驚くほど電池持ちがよくなります.
普段からクアッドコアをフルに使うシチュエーションはないので,移動中やモバブを持っていない時は私は常に省電力モードにしています.

Dropbox

隠れた目玉サービス (?)
私は知らなかったのですが,HTC機種を Dropbox のデバイスに登録すると,Dropbox の無料容量を最大2年間 23GB もらう事が出来るみたいです.

ちなみに,23GB もらうにはいくつか条件をクリアしないといけないようです.
条件というのは,Dropbox スタートガイドにある次の7つの内,5つ以上の条件をクリアする事のようです.

  1. Dropbox ガイドツアーを見る
  2. コンピュータに Dropbox をインストール
  3. Dropbox フォルダにファイルを置く
  4. 複数のコンピュータに Dropbox をインストール
  5. 友達や同僚とフォルダを共有
  6. 友達を Dropbox に招待
  7. モバイルデバイスに Dropbox をインストール
私は全部の条件をすでに満たしていたようなので,勝手に 23GB 容量が増えてました.
なんだかんだで Dropbox の容量が 70GB ほどになりましが,実際には20%くらいしか使ってません.
みんな何に使ってるんですかね. 上手い使い方があったら教えて下さい.

その他の良い点

その他の良かった点は次のような感じです.

  • GPSの精度が良い
    • 前の機種よりだいぶ正確な場所を示してくれます
    • ナビなどで使う時の測位が速いです
  • 地味に防水が嬉しい
    • 動画見ながら風呂に浸かれます
  • 細部の作り込みがすごい
    • さすが HTC 製です
    • 細部までよく考えて作られてると感じます
ちなみに,風呂で使えると書きましたが,HTL21 は IPX5 なので水をかけても大丈夫ですが,風呂に沈めるのはやめた方がいいです.
沈めるシチュエーションなんてないと思いますが・・・.

あまり良くない点

逆に欠点と言えるかなというのが次に挙げる点です.

  • 付属のホームアプリが微妙
    • "HTC Sense 4+" っていうホームアプリが付いてますが,ちょい微妙です
    • 私は元々 "ADW.Launcher EX" ユーザなので,そっち使ってます
  • 通知バーに Wi-Fi とかを ON/OFF するトグルスイッチがない
    • 私は "Widgetsoid" を使って通知バーにトグルスイッチを追加しています
  • カメラ,スクショの音がうっさい
    • わりとデカイ音がなります
ホームアプリについては自分のお気に入りの代替のものに変えればいいです.
ちなみに "ADW.Launcher EX" だとこんな感じ.
通知バーにトグルスイッチがない点については "Widgetsoid" を使ってトグルスイッチを追加しています.
こっちのほうが自由にスイッチを弄れるので逆に良いですね.
カメラの音とかについては Root 取って apk 差し替えれば良いのですが,ここでは割愛します.
( ※追記:カメラ無音化に関する記事書きました => "HTC J butterfly (HTL21) の標準カメラを無音化した" )

他の設定

他にやってる設定と言えば

  • 「最近使用したアプリケーション」ボタンのアクションを変更
  • アニメーション速度の変更
くらいですかね.
前者については,とても重宝します.

「最近使用したアプリケーション」ボタン

この端末,5インチと縦に長いのでアプリケーションによっては上部にある「メニューボタン」をタップするのが面倒な時があります.
そのため,この設定をしておくと,ホームボタンの横のボタン(物理キーではないけど)をタップする事でメニューが開くので,すんごく便利です. これがなかったら不満がすごかったかも.

設定方法は
「設定」→「ディスプレイ,ジェスチャ,ボタン」→「[最近使用したアプリケーション]ボタン」
で出てくる選択肢から 「短押しでメニュー,長押しでアプリ利用履歴を表示」 に変更します.

アニメーション速度

後者については,前の端末でアプリを使って変更していた点なので変更しました.

アニメーション速度とは,アプリを閉じる時やインテントによってアプリ間を遷移する時などのアニメーションの速さの事です.

設定方法は
「設定」→「開発者向けオプション」→「詳細設定」→「ウィンドウアニメスケール」
から,「アニメーションスケール .5x」に変更します.

最近はめっきり Android アプリ書いてませんが,開発者オプションですごく多くの事が可能になっていてビックリしました.

Root 化について (※もちろん自己責任です)

この端末は購入当初は Root 化が確認されていませんでしたが,年明けくらいに多くの人の努力によって Root 化が可能になり,HTC速報さんが rootkit まで配布してくれました.

詳細はこちら → "HTC J butterfly : root化について (HTC速報Dev)"

私も時間が出来たのでやってみました.
基本的なやり方は rootkit 内の "runme.bat" を読みつつ,実行するだけなので割愛しますが,私の環境ではいくつかバッチファイル通りに動かなかった点があったので,書いておきます.

1. runme.bat:63-74行目付近 「Fastboot flash でリカバリ領域を書き換え後,端末の接続を待ち,リカバリモードで再起動する」
という部分で,"adb wait-for-device" が正しく動いていなかったのか,通常モードで端末が起動した後にリカバリモードで再起動しなかった為,別のシェルから "adb reboot recovery" で端末を再起動した.

2. runme.bat:78-80行目付近 「install zip from sdcard から su.zip をインストールする」
という部分で,su.zip が見つからなかった為,手元のシェルから "adb sideload su.zip" で su.zip をインストールした.
38行目のプッシュがうまくいってなかったのかな.

あとは全て rootkit 通りでうまくいきました.
もちろん,Root化は自己責任でメリットとデメリットをよく判断した上で行いましょう.

S-OFF

ちなみに,現在は S-OFF も可能となっているようです.

詳細はこちら → "au HTL21 HTC J butterfly向けにUnlimited.IOがS-OFFツールを近日配布予定 【追記:配布されました】"

S-OFF する事で,起動中に /system などの領域を書き換える事が可能となります.

私の場合はすでにアプリや端末の設定などを行っており,もう一度設定するのが面倒なので S-OFF はしてません.
S-OFF しなくても,リカバリから /system をマウントすれば領域内を書き換えられるので,編集の際は毎回リカバリから行ってます.


これから楽しい HTC ライフが送れそうです. とぅっとぅる~