Huawei P9 Lite のブートローダのアンロック
アンロックコードコードが入手できない
Rootを取るにはブートローダをアンロック(OSを書き換えれるようにする)しなければいけない。前回の Ascend G620S の時はHuaweiの公式サイトでアンロックコードを入手できたが、現在は申請ページにログインするとトップページに飛ばされてしまい、アンロックコードが手に入れられない。中国語のページでやったりしてもできない。xdaの書き込みにもそのようなものがあった。Huawei公式のカスタムROM系のページが最近リニューアルされているようで、こちらのブログ記事、HUAWEI honor8のroot化が成功したので手順まとめ - k1r Blog に載ってる画像と現在のサイトが違う。そのせいかもしれない。
どうもこのようなことはよくあることらしく、「(ヨーロッパで)HUAWEIのページから直接アンロックコードを手に入れようとすると問題が起きる事があるが、DC-unlockerでは問題はない。」という書き込みもあった。もっとも、この書き込みは DC-unlocker のステマの可能性もあるが。
ということで、仕方なくDC-unlockerを使うことにしました。
注意:以下の方法は一歩間違えればスマホを壊す可能性があります。もし実際にやる場合は自己責任で行ってください。特に今回はお金がかかっているので、何をしてるかわからない場合はやらないでください。
DC-unlockerでアンロック
DC-unlockerは端末をいろいろアンロックしたりする有料サービスです。今回はブートローダのアンロックコードを取得するのに使いました。xdaのフォーラムを見ているとたまに出てくるので信頼して使ってみたところ、「本当にアンロックできるのか」という点では詐欺ではありませんでした。
対応機種・値段
DC-unlocker features for Huawei Android phones によると、P9 Lite VNS-L02 の欄に Read bootloader code とあるので、対応機種です。
また、Credits for users who don't have a DC-unlocker dongle needed for one operation の Huawei HiSilicon Read Bootloader Code の行を見ると、4クレジットとあります。4クレジットを手に入れるには涙をのんで4ユーロを払う必要があります。
アンロックコードの取得方法
- HiSuite をインストール(ドライバがインストールされる)
- P9 Lite を接続し、manufacture mode にする
- 電話アプリで「*#*#2846579#*#*」 を入力 → Background settings → USB ports settings にある
- DC-unlocker clientを起動
- 「Select manufacturer」を「Huawei Phones」にして、虫眼鏡マーク(Detect Phone)をクリック
- きちんと認識されたのを確認
- DC-unlocker の Webサイトで4ユーロ払う(Paypalが安心)
- DC-unlocker client の Server タブに、発行されたユーザIDとパスワードを入力してログイン
- Unlocking タブの Read bootloader code をクリックすると、アンロックコードが表示される
- 間違ったのを選択すると4ユーロがパーになるので気をつけて
アンロックの実行
- 開発者向けオプションの中の「OEMロック解除を有効にする」を有効にする
- USBデバッグを有効にして
adb reboot bootloader
を実行 - 白いFastbootの画面になったら
fastboot oem unlock <アンロックコード>
を実行 - デバイスが初期化され、アンロックが完了する
Root化
自分は元のROMでのRoot化が上手くできなかったので CyanogenMod 13 を入れてしまいました。
参考文献
TSをBDMVにしてBD-RやBD-REに焼くときに気づいたこと
事前準備
検証機種
- BH10NS30 LG製 PCブルーレイドライブ
- PS3 第2世代
- LCD-40MDR1 三菱製 レコーダー付きテレビ 2010年発売
- DMR-BZT710 パナソニック製 レコーダー 2011年発売
ソフトウェア
- BonTsDemux: TSファイルをm2vとwavに分割する。5.1chのダウンミックス、不要なサービスの削除もできる
- tsMuxeR: ひとつの動画をBlu-rayに書き込める形に整形する
- multiAVCHD: 複数の動画をBlu-rayに書き込める形に変換・整形する
- ImgBurn: Blu-rayディスクに書き込む
大まかな手順の流れ
Blu-rayに記録するためのフォーマットは、レコーダーで録画するときに使うBDAVと、映画などの製品に用いられているBDMVがある。自分でBDAVで書き込むには何個もツールを使うようで面倒くさいと思い、BDMVにした。再生互換性はBDAVのほうが良いそうだが、結果的にBDMVでもだいたい見れた(自分の環境では)。
ファイルが一つの場合だけ
工程: TSファイル → BonTsDemux(m2v+wav) → tsMuxeR(Blu-ray folder) → ImgBurn
ファイルが複数の場合
工程: TSファイル → BonTsDemux(m2v+wav) → multiAVCHD(Blu-ray disc) → ImgBurn
- multiAVCHDでは先にm2vだけを読み込み、Propertyを開いてWAVを追加する
- LPCM(WAV)でBDMVを作成したいときは"Subtitles & Audio"タブの"Convert LPCM to AC3"のチェックを外す
- 再エンコードは起こらない
分かったこと
BD-R と BD-RE のプレイヤー側での差異
TSファイルを、BonTsDemuxで映像と音声に分離し、tsMuxeRでBDMVに整形し、それをBD-REに記録した。しかし、それを再生しようとしても上手く行かなかった。試行錯誤した結果、BD-RとBD-REにそれぞれ同一のイメージを記録したとしても、見れる機種と見れない機種が出てくることがわかった。
機種 | BD-R | BD-RE |
---|---|---|
PS3 | ○ | × |
LCD-40MDR1 | ○ | ○ |
DMR-BZT710 | ○ | × |
BDMV(BD-Video)とBDAVの違い や Blue-rayの概要、豆知識というページで、機種が対応している規格のバージョンによって、再生できるフォーマットとディスクの組み合わせが異なるとのことが書かれており、その通りの結果だったようだ。
音声の形式はどうするのか
音声がAACのBDMVは規格違反なのだが、tsMuxeRを使った場合は作れてしまう(エラーメッセージは出る)。その場合にも、見れる機種と見れない機種が存在するようだ。
機種 | BD-R |
---|---|
PS3 | × |
LCD-40MDR1 | ○ |
DMR-BZT710 | ○ |
音声はAC-3形式に変換するのが定石かも知れないが、BonTsDemuxで出力された非圧縮のLPCM(WAV)のままでも上手く行った。下の画像のように、音声がLPCMオンリーのBD-ROMも存在するので、規格に違反することはないだろう。
非圧縮のLPCMによる容量の増加は、それほど悩まなくていいと思う。DVD時代と比べて動画の情報量は格段に増えたが、音声の情報量はそれほど上がっていない。なので全体に占める音声のサイズの割合は落ちているはずだ。下の表に参考値を書く。
Blu-ray
形式 | サイズ | 動画(19.5GB)と合わせたサイズ | 全体での音声の割合 |
---|---|---|---|
LPCM | 1577MB | 21.0GB | 7.5% |
AC-3 | 328MB | 19.8GB | 1.6% |
DVD
形式 | サイズ | 動画(3.18GB)と合わせたサイズ | 全体での音声の割合 |
---|---|---|---|
LPCM | 1280MB | 4.46GB | 28.7% |
AC-3 | 274MB | 3.45GB | 7.9% |
大事な点
AVRとLEDマトリクスで自然な階調表現
LEDマトリクスで画像の回転(90度単位ではない回転を含む)をする関係で自然な階調表現ができるプログラムを作りました。明るさに2値しか取れないと各種の補完アルゴリズムが使えず、回転してもまともな画像にならない。
使用した部品
すべて秋月電子で買いました。
- AVR ATmega326P-PU
- OSL641501-ARA
- 8x8ドットのLEDマトリクス 200円
- SN74HC595N
- 普通のシフトレジスタ 40円
回路
LEDへの電流の流れはシフトレジスタ側からマイコン側になっているので、シフトレジスタ側を1、マイコン側を0にすると点灯します。
階調表現の方法
シフトレジスタ側が、ある1列に1を出力している間に、マイコン側でその列の各LEDをPWMで制御する。
PWMのパルスを8分の1に分け、8段階の明るさを作る・・・とやってしまうと不自然になる。物理的な輝度と、心理的な明るさは比例しないので滑らかなグラデーションにならない。
人間の知覚に合わせた色空間であるCIE Labによると、明るさ: と輝度: の関係はザックリといえば下の式とグラフになります。
このグラフから、0付近では が少し変化すると は大きく変化する、1付近では が大きく変化しても の変化は小さい、と読み取れる。言い換えれば、暗部の変化に敏感で、明部の変化に鈍感だ、ということが言えると思います。今回は考慮しなかったが、実際は目の順応や光源によっても変化する。
実装
今回は明るさを8段階、パルス幅を16段階に分けて表現する。どちらも段数が少ないが、あまり多くしても他の処理ができなくなるので。
明るさ | パルス幅 |
---|---|
0 | 0 |
1 | 1 |
2 | 1 |
3 | 1 |
4 | 3 |
5 | 5 |
6 | 9 |
7 | 15 |
明るさ 1, 2, 3 は同じパルス幅になっているが、16段階での分解能ではこれ以上分けられないのでしょうがない。
等分割した場合
明るい方の違いがわからず、急に暗くなっていくように見える
波形
視覚特性を考慮した場合
5番目まではちゃんと階調が見える(カメラ越しでは分かりにくいが、肉眼ではもう少しよく見える)。
波形
プログラム
char bright_curve[8] = { 0, 1, 1, 1, 3, 5, 9, 15, }; void refresh_display() { for (short line = 0; line < 8; line++){ // 1列目の時だけシフトレジスタに1を入力 if (line == 0){ PORTB |= _BV(PORTB3); }else{ PORTB &= ~_BV(PORTB3); } // シフトレジスタの内容を一つずらす PORTB |= _BV(PORTB1); PORTB &= ~_BV(PORTB1); PORTB |= _BV(PORTB2); PORTB &= ~_BV(PORTB2); // LEDのPWM制御 // forループの周期が一定とみなし、タイマを使わずにPWMを出力する // 内蔵タイマを使えば正確な波形が出せるが、他の処理に割ける時間が減ってしまう for (short bright = 0; bright < 16; bright++){ for (short num_led = 0; num_led < 8; num_led++){ short value = p_frame_buffer[num_led * 8 + line]; if (bright_curve[value] > bright){ PORTD &= ~_BV(i); //点灯 }else{ PORTD |= _BV(i); //消灯 } } } PORTD = 0xff; //全消灯 } }
Conclusion
人間の視覚特性に合った明るさで表示することは少しできたが、PWMの分解能が16段階では不十分で、暗部の表現がかなり限られている。
次回は「AVRとLEDマトリクスで画像を回転」の予定です。
Firefox用ポップアップ辞書アドオン「Light Dict」
開発終了
ごめんなさい。
お知らせ
- 2016/11/12
- 0.3.0から設定内容を変更したので、今までの設定がリセットされます。もとに戻す場合は再設定をお願いします。
- 2016/8/8
- 0.2.0とそれ以前のバージョンは Firefox 48 で動作しません。最新版へのアップデートをお願いします。
概要
Webページ上やFirefox内蔵のPDFビューア内で選択した英単語・成句を辞書サイトで検索し、その場でポップアップ表示されます。検索ボックスに入力しての検索や検索履歴機能もあります。
使える辞書は、 Weblio・goo辞書・コトバンク・Urban Dictionary です。
コンセプト
- 単語の意味を調べることに特化 (翻訳はしない)
- 何度も検索している単語が何かわかる
- 例文もわかる
- インストール・設定が簡単
- weblioPaneの代替
リンク
- Mozilla公式配布ページ: https://addons.mozilla.org/ja/firefox/addon/light-dict/
- GitHub: https://github.com/microwaver17/Light-Dict
使用例
よくある (ありそうな) 質問
- 広告が邪魔だ
- 元の辞書サイトの広告なので仕方ありません。ちなみにAdblock Plusは使えます。
既知の不具合
- インラインフレーム・テキストエリア未対応
- ツールバーのボタンを押すと検索ボックスが出てくるので、そこにコピペして検索してください。
- 発音ボタンが正しく表示できない
- キーボードイベントをフックするアドオンとの相性(vimperatorなど)
- vimperatorであれば、Shift + Esc (またはInsert) で一時的に無効化すれば使えます。
- ツールバーにボタンを追加したので、それを使ってください。
- Weblioがで404ページに飛ばされる*2
- 飛ばされないためにトリッキーなことをしているので、上手く行かない可能性はあるが、再現できなかった
- コトバンクが表示されない*3
- 併用する拡張機能によって表示されないらしいが、再現できなかった
お問い合わせ
バグ報告・質問・要望などは下記のメールアドレスやコメントに送ってください。
プロフィール欄のはてなID(「id:」は除く) アットマーク ホットメール ドットコム
バージョン履歴
- 0.0.1 (2016/3)
- 最初のバージョン
- 0.0.3 (2016/3)
- 0.2.0 (2016/4)
- ロード中にクルクルを表示するようにした
- 記号を含む単語に対応 ("e.g." など)
- 0.2.1 (2016/8)
- Firefox 48 で動作しない不具合に対応
- 0.3.0 (2016/11)
- あの Urban Dictionary に対応
- 2つのキーにそれぞれ別の辞書を当てて使えるようにした
- 検索結果パネルの表示位置がおかしくなる現象を修正
- リロードしないと設定が反映されない現象を修正
- 0.4.0 (2016/11)
- 検索履歴機能の追加
- ツールバーのボタンからの検索機能の追加
補足
以前はweblioPaneが使えたのですがFirefoxのバージョンアップに追従しなくなってしまったので、同様なアドオンを作りました。もうすぐアドオンの推奨SDKがWebExtentionになるので、いま新規にアドオンを作るのは後々二度手間が発生しそう、とはいっても今使えるものが必要であることも、またしかり。 そもそもChromeにある「Weblioエクステンション」がFirefoxにあればいいのに。まあ、とにかく使ってください。
※追記
ついに、2017年11月14日リリース予定のFirefox 57からWebExtentionしか使えなくなる。Light Dictは一応WebExtentionを念頭に置いて開発してきたつもりなので、そんなに難しくなく書き直せるはずだ。