HTC J OneでhTCキーを有効化する

HTC J Oneのカーネルソースが先日公開されました!
早速、まず取り組みたかった中央のhTCロゴをキーとして利用する方法を公開します。

6/23
初版のブートイメージ(0622)では、一部のアプリが読み込めなくなる等の不具合が発生します。
対策版(0623)を公開したので、そちらを焼き直してください。ご迷惑をお掛けします。

対策版(0623)では、電話時に相手の音声が聞こえない問題が発生します。
これはHTC側の問題と考えられるので、現在問い合わせ中です。
通話が必要な人は以下の手順を実行しないようにお願いします、ご迷惑をお掛けします。

8/6
HTCが音声問題を解決したカーネルソースコードを(こっそり差し替えて)公開したので、
諸問題を解決したブートイメージを公開しました。

こちらの海外版HTC One向けに開発されたカーネルソースを参考に、国内版HTC J Oneに移植しました。
http://forum.xda-developers.com/showthread.php?t=2244620

移植したカーネルソースコードはこちら。
https://github.com/tako0910/android_kernel_htc_m7wlj/tree/exp

HTC J Oneでの実際の動作はこちら。

実際の作業方法を説明します。
BootloaderのUNLOCKED/S-OFFが前提です。
更に、/system/xbin内にbusyboxが入っていることも前提としています。
​systemのバックアップをお忘れなく。(以下の手順ではsystem内を改変します。)

HTC機はsystemが改変されているとOTAが当てられなくなります。
また、バージョン1.07.970.4向けに書いています。

最初にカスタムリカバリを起動します。(CWMでもTWRPでも何でもOK)
まずはオンスクリーンのメニューキーを消す作業をします。
/system/build.propに以下の一行を追記します。

qemu.hw.mainkeys=1

追記するのはどこでもOKです。私は一番上の行に追記しました。

次に、hTCロゴをメニューキーとして割り当てる設定をします。
/system/usr/keylayout/synaptics-rmi-touchscreen.klの最下部に、以下の一行を追記します。

key 139  MENU VIRTUAL

最後に、各種挙動を決めるためのパラメータを決めます。

logo2menu home2wake logo_delay
home2wake 0 1
home2wakelogo2menu 1 1
home2wakelogo2sleep 0 2
home2wakelogo2sleep_nodelay 0 2 0
logo2menu 1 0
logo2wakelogo2menu 1 3
logo2wakelogo2sleep 0 3
logo2wakelogo2sleep_nodelay 0 3 0
stockmapping 0 0



各機能と、それを設定するパラメータの一覧です。
例えば、home2wakeはホームボタンでwakeする、
home2wakelogo2menuはホームボタンでwake、且つhTCロゴをメニューキーとして割り当てるといった具合です。

設定ファイルを、/system/etc/init.d/S01-h2wとして作成します。(init.dディレクトリがない場合は作成する)
ファイルの内容は、以下の通りにします。(例としてhome2wakelogo2sleep_nodelayの場合

#!/system/bin/sh
echo "2" > /sys/android_touch/home2wake
echo "0" > /sys/android_touch/logo2menu
echo "0" > /sys/android_touch/logo_delay

logo_delay欄が空欄の機能は、最後のlogo_delayの行は必要ありません。
S01-h2wのパーミッションを設定します。

# chmod 755 /system/etc/init.d/S01-h2w

最後に、これらの機能が使えるカスタムカーネルを焼きます。

htclogo_20130806.img

バージョン1.07.970.4向けなので、それ以外のバージョンについての起動、動作については確認していません。

まずは、

fastboot boot htclogo_20130806.img

として、焼かずに起動させ、動作を確かめます。
正常に動作することを確認した後、

fastboot flash boot htclogo_20130806.img

で、実際にフラッシュ(焼き込み)します。

これで作業は完了です。

[`evernote` not found]

    • 匿名
    • 2013年 6月 24日 4:52pm

    質問があるのですがhome2wakeを入れると通話で相手側の音声が聞こえなくなるという不具合はありますか?

    先日導入したのですが相手側の音声が聞こえなくなってしまったので…

      • tako0910
      • 2013年 6月 24日 11:55pm

      あります。
      Twitterにより詳細な情報を書きましたが、HTCの公開ソースコードに原因があると考えられます。

      現在HTCに問い合わせを行なっているので、しばらくお待ち下さい。
      ご迷惑をお掛けします。

      その場しのぎとして、純正のブートイメージを書き戻せば、音声通話の問題は解決します。
      (勿論ロゴキーなどは使えなくなりますが…)

    • ゆう
    • 2013年 6月 25日 1:44am

    通話のほかにエラーレポートが出たりする現象はありますか?それとも出るのが普通でしょうか。
    logo2menuの導入と同時にroot化を行ったため、ちょっと気になります。
    ちなみにリカバリはTWRPです。

    通話はスピーカーモードにすれば何とかなります。

      • tako0910
      • 2013年 6月 25日 1:48am

      カスタムリカバリで起動した後、エラーレポートが出るのはHTL21の時も発生したので、
      あまり気にしなくても良いと思われます。

      そうですね…スピーカーからは聞こえるので、一応何とかはなります…
      その部分については、HTCの回答待ちですのでしばらくお待ちください。

    • ゆう
    • 2013年 6月 26日 5:32pm

    度々すみません。
    パラメーターの部分でlogo2menuを選んで入れたのですが、home2wakeも動いてしまうのは仕様でしょうか?

      • tako0910
      • 2013年 6月 27日 12:35am

      多分logo2menuにすればhome2wakeは動かなかったと思います。
      (現在確認できる環境が無いので…すみません。)

      adbで接続し、
      cat /sys/android_touch/logo2menu

      cat /sys/android_touch/home2wake
      の結果を教えて下さい。

    • ゆう
    • 2013年 6月 27日 5:54am

    スペルミスみたいでした。。。申し訳ございません。

      • tako0910
      • 2013年 6月 27日 3:09pm

      了解です

    • ななみ
    • 2013年 7月 6日 1:26pm

    なかなか修正カーネルが公開されませんね…
    これ使えるようになるの楽しみしてるのになぁ。

    • ふうけんまこと
    • 2013年 8月 7日 12:39am

    takoさん

    はじめまして。
    HTC速報さんより配信されたグローバルエディションのロムで動作する事を確認しました。

    ひとつ質問があるのですが、
    ロゴキーの利きが微妙なのは個体差なのでしょうか。
    微妙・・・とだけ書いても伝わらないとは思いますが
    とにもかくにも微妙なのです。
    s2wはとても便利です!

      • tako0910
      • 2013年 8月 7日 10:09am

      いえ、どの個体でも「微妙」だと思われます。
      タッチを検知する部品(?)が、本来使われることのないはずのhTCロゴの部分まで来ていたのを
      無理やり検出している形なので、仕方のないことだと思います。

      ちなみに、hTCロゴの少し上を押す感覚でタッチすると、うまく反応してくれるような気がします。
      慣れれば、意外と気にならなくなります。

      S2W便利ですよね!私もこれなしではもうダメになってしまいましたw

        • ふうけんまこと
        • 2013年 8月 7日 10:43pm

        ちょい上で試してみました。
        画面の境界線くらいが狙い目ですね、これ。

        ちょっとロゴキーから話が逸れてしまうのですが。
        splash.imgのflashについて質問があります。
        S-offとUNLOCKED済み端末で以下のエラーが出てしまいます。

        fastboot flash splash1 splash1.img
        sending ‘splash1’ (4050 KB)…
        OKAY [ 0.666s]
        writing ‘splash1’…
        FAILED (remote: not allowed)
        finished. total time: 0.702s

        remote: not allowedが出る場合S-OFFされていない可能性があるらしいのですが。
        boot.imgが焼けているのにS-OFFされていないなんて事はあるのでしょうか。
        HTL21、HTL22共に発現します・・・。

          • tako0910
          • 2013年 8月 7日 11:33pm

          はい、慣れればそれほど違和感なく操作できるようになると思いますw

          UNLOCKEDであればS-ONでもbootは焼けます。

          S-ON/S-OFFを識別するには、HBOOT画面を見れば分かります。
          例えばHTL21であれば、上部に
          DELUXE_J PVT SHIP S-***

          ***の部分に記載されています。

            • ふうけんまこと
            • 2013年 8月 7日 11:49pm

            両機とも表示はS-OFFになっています。
            bootがflashできてsplashがflashできない理由が分からないのです。
            実はS-OFFが出来ていない、ということなのでしょうか。

            よろしくお願いします。

    • 匿名
    • 2013年 8月 7日 9:28am

    記事に書いてあるとおりに作業したところ、無事成功することができました
    本当にありがとうございます
    画面が広くなって快適になりました(笑)

      • tako0910
      • 2013年 8月 7日 10:12am

      メニューキーの部分だけ狭くなってしまうのは本当にもったいないですからね……
      お役に立てて良かったです!

    • 匿名
    • 2013年 8月 8日 8:34pm

    流石にs2wは使えないですかね

      • tako0910
      • 2013年 8月 9日 3:04am

      echo “1” > /sys/android_touch/sweep2wake
      で、使えますよ!(今度記事に追記しておきます)

    • 匿名
    • 2013年 8月 8日 9:58pm

    お世話になっております。
    以前使わせていただいてた旧版から0806版を焼かせてもらいました。
    するとS01-h2wの設定内容が反映されなくなりました。
    例えば、home2wake有効にしていてポケット内で誤動作するようになったので
    無効にするためcho “0” > /sys/android_touch/home2wakeに変更しました。
    再起動するもcat /sys/android_touch/home2wakeは1のままです。
    ファイルはそのままですのでミスはないと思いますがわかりましたらよろしくおねがいします。

      • 匿名
      • 2013年 8月 8日 11:50pm

      すいません。書き込めてないと思い二度書きしてしまいました。

        • tako0910
        • 2013年 8月 9日 3:05am

        なるほど…報告ありがとうございます。
        確認してみます。

          • tako0910
          • 2013年 8月 9日 7:02pm

          試してみましたが、私の環境ではきちんと設定内容が反映されます。

          また、
          cho “0″ > /sys/android_touch/home2wake
          ではなく、
          echo “0″ > /sys/android_touch/home2wake
          です(実際には間違えてないのかも知れませんが一応)。

          もう一度、最初から設定を見なおしてみてください。
          パーミッションなども正しく設定されていますか?

            • 匿名
            • 2013年 8月 10日 2:24am

            ご確認ありがとうございます。
            一度init.dフォルダ毎削除して、フォルダとファイルS01-h2wを再作成からやり直ししたところ上手く動作いたしました。
            恐らく編集した際に記述ミスか誤った設定になってしまったのかなぁっと思います。
            大変お騒がせしました。htcsokuさんところのGlobalEditionROMと併用させていただいており、非常に便利に使わせていただいてます。

              • tako0910
              • 2013年 8月 10日 10:28pm

              良かったです!
              お役に立てて何よりです。

            • とも
            • 2013年 8月 10日 10:13pm

            私も全く同じ状況です。
            私は今回焼くのが初めてです。

            echo “0″ > /sys/android_touch/home2wake
            にしてあるにも関わらず、
            cat /sys/android_touch/home2wake
            は1で返ってきます。

            パーミッションも大丈夫なので、何をどのように変更すれば求めている結果が得られるのか分かりません。

              • tako0910
              • 2013年 8月 10日 10:29pm

              一度最初からやりなおしてみると良いと思います。
              /system/xbinにbusyboxは入っていますか?
              また、busyboxのパーミッションは適切ですか?(755等ならok)

                • とも
                • 2013年 8月 10日 10:49pm

                返信ありがとうございます。
                私も上の匿名さんと同じようにinit.dフォルダを消して再構築してみたらなぜかできました。
                原因は分からないですけど、とりあえず解決しました。
                ありがとうございました。

    • 匿名
    • 2013年 8月 8日 10:46pm

    記事についてお聞きしたいのですが、
    S01-h2wを作成する際、左記ファイルの拡張子を教えて頂けませんか?

      • 匿名
      • 2013年 8月 8日 11:13pm

      すみません。
      自己解決しました。

    • ネコ
    • 2013年 8月 10日 6:11pm

    初歩的な質問ですみませんが、temproot取得後どうやってxbinにbusyboxをインストールしますか?

      • tako0910
      • 2013年 8月 10日 10:31pm

      temprootだけでは無理です。
      bootloaderをUNLOCKした後、カスタムリカバリを導入し、
      そこから/system/xbinにbusyboxを置けば良いです。

    • ネコ
    • 2013年 8月 10日 10:40pm

    ご親切に教えてくれてありがとうございます!助かりました。

    • アビ
    • 2013年 8月 11日 3:00am

    S01-h2wを作成する際の拡張子がわからないのですが、
    教えてもらってもいいですか?

      • tako0910
      • 2013年 8月 11日 4:33pm

      拡張子は無しです。

    • アビ
    • 2013年 8月 12日 2:20am

    返信ありがとうございます。
    それではファイルはtextで作成していれればよいのでしょうか?

      • tako0910
      • 2013年 8月 12日 2:21am

      はい。

    • 匿名
    • 2013年 8月 17日 10:39pm

    logo delay とはどういった機能ですか?

      • tako0910
      • 2013年 8月 19日 4:22pm

      使って確かめてみてください。私も使ったことがありません。
      delayだから、多分反応する時間の指定だと思います。

    • Red買いました
    • 2013年 8月 28日 6:11am

    こんにちわ

    実際の動作状況を動画でアップされてますが、その場合のS01-h2wの内容はどのようになるのでしょうか?
    「長押し」をどう記述するのかわからなくて・・・

    それと、これを導入することでSDXC(64GB)が読めなくなるっていう症状、報告されてますか?
    何故かマウントできなくなって、導入前にリストアすると読めたので。

      • tako0910
      • 2013年 8月 30日 11:48pm

      #!/system/bin/sh
      echo “1” > /sys/android_touch/home2wake
      echo “1” > /sys/android_touch/logo2menu

      だったと思います(多分)。
      色々と試してみてください。デフォルトで長押しです。
      多分、delayを0にすると長押しでなくなるのだと思います(未確認)。

      SDXCが読めなくなる不具合は1件報告されています。
      私がSDXCを持っていないためこちらでは現象を確認できていません。
      SDカード部分はカーネルソースを弄ってないので何故読めなくなるのか分かりませんが、
      現象を確認して直せるようであれば直したいと思います。

        • @sector_beta
        • 2013年 8月 31日 12:48am

        64G SDXC読めなくなりますね。バックアップからbootのみ書き戻したら使えるようになりました。
        CWMでも64Gの使えなかったし現状は32G使っておいた方が使い勝手良さそう。

        • Red買いました
        • 2013年 9月 1日 5:14pm

        デフォルトが長押しなんですね!
        そんなことも理解できなくて、恥ずかしいです。
        記載いただいたもので動画の動作例通りになりました。
        ありがとうございます。

        SDXCの情報もありがとうございます。
        現状、TWRPも対応してないのでSDHC(32GB)を使おうと思います。

    • ゆう
    • 2013年 9月 1日 3:13am

    ワンクリックツール作ってください><

    • 4.2の提供が開始されて
    • 2013年 9月 16日 7:39pm

    ホーム長押しメニューに対応するようにはなりましたが、
    ロゴをメニューキーとして使いたい人は少なくないと思うのです

    今後4.2のJ One向けにブートイメージが更新されることはおありでしょうか。
    個人的に調べた範囲ではlogo2menuも動いてるよ~的なレポートを見つけられなかったので。

      • tako0910
      • 2013年 9月 16日 9:05pm

      はい、対応するつもりです(私も使いたいのでw)。

      現在公開中のv4.1向けブートイメージは、4.2では適用できません(起動不能になる)。
      4.2のカーネルソースコードが公開されれば対応できるのですが、現在公開されていません。
      (HTCDevでは公開されているように見えるが、実は4.1の表記ミス)

      ということで、現状ではどうしようもないので、対応できるようになったら対応します。

        • KING
        • 2013年 9月 20日 1:45pm

        速報さんで公開されてるGLOBAL版 4.2.2でauのKernelをマージじてあるので、
        えふのじさんは差分をしてるんだと思いますよ。

        差分だけを公開してもらえると違うKernelにもマージしようかと思っているのですが。。。

    • あとむ
    • 2014年 6月 3日 8:17pm

    始めまして!
    4.2対応のboot.imgの公開はあるのでしょうか?

      • tako0910
      • 2014年 6月 3日 8:50pm

      HTCが4.2.2のソースコードを公開してくれないので作っていません!
      見かけ上は公開しているように見えるのですが、実際は4.1のソースコードが入っており、
      修正依頼を掛けたのですが無視されている状況です。

        • あとむ
        • 2014年 6月 4日 6:35pm

        なるほど。
        そうでありましたか~
        Ver.1.07.970.4の完成度、操作性がこの端末にしっくりくるので、
        もしやと思いましたが、仕方ありません。
        Android4.4では中華の方で出回っているようですが残念です。
        もし公開されましたら、作成・発表の方お願い致します。

    • あとむ
    • 2014年 6月 3日 9:06pm

    始めまして!
    4.2対応版の作成は如何でしょうか?

  1. 2013年 9月 3日
    トラックバック先 :woodrof.com | HTC J One 機種変