2019年9月29日日曜日

FireHD10 Unbrick

約1週間が過ぎ、時間ができたのですこし本腰を入れてみました。

参考になるというかそのものの手順が
https://forum.xda-developers.com/hd8-hd10/orig-development/unlock-fire-hd-10-2017-suez-t3913639
に書いてあり、今回私の最悪の文鎮化状態の場合は、コメントの#2でUnbrickと書かれている場所から始める必要があります。

Unbrickで必要なものは、xdaでも書かれていますが、
・Linuxベースの環境
・Usbケーブル
・基板上でショートさせるためのジャンパ線か何か
・FireHD10の分解するためにコーキングナイフかピックとか
・FireHD10の基盤を取り外すためのトルクスドライバ(サイズはT4)
・ハックするためのいくつかのファイル
以上です。

分解手順は(https://bunkai.biz/fire-hd-10)に記載されていますが、思った以上に苦労しました。
原因はピックを使ったことだとは思いますが、補足事項としてスピーカーの部分はクッションがあるので、差し込む際にはスピーカーの穴が開いている部分は差し込まない方が良いということ。差し込むためにはかなり薄くないと差し込みにくいのと、じっさいに爪を外す際にはそれなりの力が必要なので、何種類か厚さを用意して外した方がよさそうです。実際にカバーを外すには、ふちの部分だけでなく、少し内側にも爪があるので、適度に加減しながら開けることになりました。手持ちのピック3枚をダメにするつもりで無理をして使ってみましたが、一番薄いピックは結構ガタガタになっちゃいました。

分解は完全に分解する必要はなく、バッテリーのコネクタを抜いた後は、ディスプレイケーブルを外し、フロントとリアのカメラを外してネジを外せばマザーボードがひっくり返せました。

両手しかないので、必要な個所をなんとか片手でショートさせてもう片方の手でUSBコネクタをRaspberry piに差し込む必要があるのでそれなりに練習してから、スクリプトを実行させてみました。
先週はエラーで落ちていた部分がすんなりと進み、スクリプトが一時停止しました。
第一関門突破です。
これ以降はショートさせる必要がないので外してから、スクリプトを継続させます。
全体的に書き換えられていますが、残念なことに途中でストップしました。
ストップしたら再実行すればオッケー見たいなことが書かれているし、ショートさせる必要もないっぽいので、再度実行しましたが…スクリプトはエラーで終了しました。
ショートさせるのが失敗していてもエラーで終了するだけなので、手順としては
1 マザーボード側のUSBを接続
2 ターミナルでスクリプト(sudo ./bootrom-step.sh)を実行。
3 SDカードのスロットの金属と基板上のポイントをしっかり確実にショート状態にする。
4 Raspberry piへUSBの接続
という感じがお勧めです。

2度目は最後まで書き込めたので、マザーボードを戻してハード的に一通り戻しました。
蓋まで戻すと面倒そうなのでこの状態で実際に動かしてみると…画面に電池のマークが表示されるようになりました。
一週間放置したので、おそらくひたすらリブートし続けて電池がスッカラカンになってしまったのだと思います。

一歩前進したのでしばらく充電してみます。
しばらくすると、起動音も出るようになりamazonのロゴが表示され画面の下にはHacked Fastbootとの表示が。

これで少し前進しました。

電源ボタンを押して電源を入れなおしてみると、リカバリーメニューも表示されました。
ただ、画面の下にはバッテリーが低下してるので
E:Battery level is too low to perform update or factory reset.
の表示が。さらに充電することにしました。

今回はroot化したり、カスタムするのが目的ではないので充電後試しにこのままファクトリーリセットをかけてみることにしました。
するとfireロゴが表示され、初期画面が表示されるようになりました。言語選択後、そのままwifi接続なし、アカウントなしで起動し、バージョンを確認したところ
5.6.4.0(636558520)
となっていました。
636558520は先週サイトロードしたバージョンだと思うので、問題なさそうなのでこの状態で使い始めることにしました。

気になる点としては文鎮化した原因がアップデートに起因するということ。ストレージのフラッシュメモリーがダメになりつつあるのかもしれないし、もっと根本的な部分かもしれないので、しばらくはおとなしく使って様子を見ようと思います。

やっぱり動画を見るにはこのぐらいのサイズがちょうどいいのを実感しました。

ただ、日本国内向けのFireHD10はなくなるんじゃないか的な書き込みを見かけたのでかなり残念な気がします。Showモードがついた段階で機能的にEchoとバッティングして、値段的にEchoよりFireHD10の方が有利になってしまって販売戦略的には無くしたがってるような気はします。

2019年9月22日日曜日

FireHD10 brick

さっきまでプライムビデオを見てそのまま放置していたFireHD10が、気づいたら画面にリカバリーメニューが表示されていました。

このような経験がないので嫌な予感しかしませんが、考えられるのは自動アップデートで失敗したぐらいしか考えられません。

リブートしたり、ワイプしたり、出荷時の状態にしたりと、やれることはやりつくしたのですが、何をしても画面に起動時のAmazonロゴの表示が一瞬消えたあと、再度表示されしばらく経ってからリカバリーメニューが表示される状態に陥りました。

リカバリーメニューから工場出荷状態にしてもダメとなってしまったので、正当にやれそうなことからやり始めました。

アマゾンから最新のイメージをダウンロードしてリカバリーメニューから行えるサイドロードでfireHDへ流し込んでみます。

注意点としては、FireHD10のバージョンより古いバージョンを入れると文鎮化するっぽいのですが、公式ページからダウンロードすれば問題ないはず…

C:\>adb.exe sideload update-kindle-40.6.3.6_user_636558520.bin
* daemon not running; starting now at tcp:5037
* daemon started successfully
Total xfer: 2.00x

このあと自動的に画面が暗転したのか、リカバリーメニューから再起動させたのか、覚えていませんが、その後はなにをやっても画面が点灯する事はなくなりました。

完璧な文鎮化です。

新しいFireHD10が出てきそうな雰囲気ですが、最近のFireシリーズはスペックアップがほとんど無く、マイナーアップデートばかりですが、ちょっと期待したいところ。

ですが、目の前の文鎮となったものは主にプライムビデオ再生機として使っていて、古いFireHD8を代用してみましたが、アレクサのハンズフリーが無いのと、画面の解像度が低いのと小さいのとでちょっともやもやが止まらず、もう少し何とかならないかと試すことにしました。

検索して気づくのは、日本語ソースの情報が少なく、この手のサイトはxdaぐらいしか情報がなさそうだったこと。

いやな予感しかしませんが、目の前の(ry

現行のFireHD10のGen7はカバーを開けずにusb接続だけでrootがとれる状態の様なのですが、一番の問題はリカバリーメニューも死んでいるためにSoCのバックドアを利用するしか無さそうということ。FireHD10はMTKのSoCを採用しているので、それ系の方法で攻めることができそうなのがわかりました。

このバックドアを利用する一般的な方法はバッテリーを外した状態からゴニョゴニョする様なのですが、windowsで確認したところなんとなくusb接続までは確認できました。
windows10ではそれまでドライバをどこかから入手する必要があった様ですが、現行の10では別途用意する必要はありません。
が、そこから先に進めず途方に暮れることに。

原因がwindows10のドライバなのか、文鎮なのか不明なために、気が済むまで様子を見ました。ドライバを強制的に入れたりもしてみました。
結論としてはFireHD10の第七世代機はSoCのバックドアをハード的に制限しているということが書かれている記事を見かけました。

とりあえずここまでで、電源投入からWindows10とFireHD10をUSB接続してスクリプトを実行してデバイスとしてMTKのUSB接続(MediaTek PreLoader USB VCOM Port)までは確認できました。

しかしこれ以上何とかするためにはWindowsではなくLinuxベースの環境が必要となりそうです。
幸いにもUSBがついている環境としてRaspberry piが絶賛稼働中なのでそれを利用することにしました。

最初はまったく上手く行かず、USBの接続すらできない状態だったのでかなり悩んだのですが、接続したRaspberry piが、ターミナルで開いているものではなく、別の部屋のRaspberry piだったという…。

そんなに大変なセットアップではないのですが、面倒なので移動して接続するとあっさりとハンドシェイクまで無事確認できました。

ただ、そこからが全く進まず、やはりハード的に細工しないとこれ以上は無理そうな感じでした。
時間も無くなり、これ以上はいったんあきらめることにしました。

2019年2月4日月曜日

Zenphone3maxでoreoアップデート後ムービー録画ができなくなった

先日アップデートが配布され使用していましたが、カメラアプリでの動画が録画できなくなっていました(;´Д`)
インストールされてるカメラ系アプリはカードボードカメラぐらいしかなかったので、グーグルカメラでもインストールしようと思ったのですが、機種がだめなのか、oreoなのがだめなのか、インストールボタンが表示されす…
他の人は今どうしてるのかなぁ?

おとといぐらいにAndroidでカメラ撮影してる人が画面真っ暗になって撮影できなくなって困ってたのですが、その時の状況に似てるかも。その人も撮影時に動画モードに切り替わって写せなくなったのかな😅

2018年12月27日木曜日

NEW_OUTGOING_CALL

OCN電話のプレフィックスを付加させる動作で手元のスマホで動作が少しおかしいので少し調べてみました。

ダイアルするときに
「発信できません。」

というダイアログが表示されるもののしっかりと付加処理後の番号でダイアルされている感じに。

通話なんて滅多に使っていませんでしたが、そういえばずいぶん前にファームのアップデートがありました。

ターゲットとなる端末の状態は…
ビルド番号 01.00.05
Android 5.0.2
カーネルバージョン 3.4.0
古い端末になりますが、買い換えようと思いつつも、SH-M02使い続けています。

動作を調べてみたところ、1回のダイヤルで2回NEW_OUTGOING_CALLを受信している感じなので、ログで動作を詳細に見てみることに。

やはり2回呼び出されていて、一回目はgetResultData()は設定されていない状態で、2回目はgetResultData()が設定されている状態でした。

abortBroadcast()させてみたり、マニフェストのandroid:priorityを変えてみましたが、この辺の処理であまり動作を変更したくないので色々と試したところ、getResultData()がセットされていないときに処理を行わないようにしたら動作が落ち着きました。

この状態で手持ちの端末で様子を見ていますが、2回呼び出しが行われているのはSH-M02だけなのでこれがAndroidバージョンによるものなのか、ビルドによるものなのか、もしくは他のアプリが原因かは不明。

2018年12月3日月曜日

FFFTP V3.5でSSL暗号化を有効化したvsftpサーバーへ接続できない

先日PCを入れ替えたのでFFFTPも最新の物をダウンロードして使ってみたのですが、どうも一部のraspbeery piのvsftpへの接続がうまく行かない状況に陥っていました。

原因がはっきりしないままモヤモヤしていました。
完全に接続できない状態ではなく、FFFTPの画面上ではFTP接続した後にディレクトリを受信した状態で完了せず、受信中断以外は何もできない状態になりました。
受信中断ボタンを何度か押すと、ディレクトリが表示され使えるような雰囲気になるのですが、ディレクトリの読み込みタイミングで何度も同じような状況に陥ってしまい使い物にならなくなりました。

ですが、ほかのRaspberry Piへの接続は問題なく行くので、FFFTPが原因だとは思いつつも放置していましたが、また同様の状態になったので、何が違うのか調べてみると、うまく接続できないパターンはvsftpのSSL暗号化を有効にしているものへのアクセスが失敗していました。

ただ不思議なのは、FFFTPのサーバー登録を新規で行って接続するとうまく接続できたことが少なくとも1回はあったので、変なバグが潜んでそうな感じです。
暗号化設定のページでWinSCPというFTPクライアントを使用していたのでそれをダウンロードして使ってみたところ、SSL暗号化を有効にしたvsftpでも問題なく接続できることを確認できました。

https://iotdiyclub.net/raspberry-pi-3-vsftpd-setting-ssl-1/
https://forest.watch.impress.co.jp/library/software/winscp/

ただ、このWinSCPのファイル転送はバイナリモードで行われることを前提としている雰囲気で、転送はできるものの、改行変換は行われない模様。内臓エディタで直接編集できるからいいっちゃいいのかもしれませんけど、ちょっと難ありでした。

私も、バイナリ転送だけでいいんじゃね的な思想の時期もありましたが、今では変換ありも捨てがたいと思っています。万能テキストエディタを使ってればいいんですけど、結局デフォルトのエディタが一番使う機会が多い。