きりのブログ

パソコン、開発関係の思いつきと作業記録

Nexus 5X 再起動ループへの対処

Nexus 5Xを使っているのですが、先日朝起きてブラウジングしようとしたら固まって再起動。そのまま再起動ループに陥りました。

最近ちょっと電波の掴みが悪いかなー、とか昨日小雨の中使ったからかなーと不具合に至る前兆やら原因やら思い当たる節がなくもなかったのですがハッキリしません。

Nexus 5Xは2015年9月に発表された機種で、2016年に再起動ループの報告が多発しLGが返金対応すると話題になりました。私は2016年3月にExpansysで購入しましたがこの問題は起きずにここまで来ました。

Nexus 5X、再起動ループ問題でLGが全額返金を開始。部品在庫なしで事実上の「リコール」か。 | スマホ評価・不具合ニュース

まだ返金対応もしくは交換対応しているのかと調べたのですが、どうやらメーカー保証の1年以内でないと修理扱いになるようです。修理だと4万円近くなるらしく、これなら買い替えた方が良さそうと判断しました。

Nexus 5X 再起動ループでLGへ修理依頼 - IT系会社員ブロガー

そこまでヘビーに使うこともないので、HUAWEI P10 liteが候補です。コスパ大事。

HUAWEI P10 lite スマートフォン | 携帯電話 | HUAWEI Japan

とはいえ、最低2年は使いたかったし、どうせ捨てるのならと悪あがきしてみたらできちゃったのでφ(..)メモメモ

 

通り一遍の対応は試しました。(電源入れ直し、バッテリー放電、SIM抜き差し、電源ボタン連打、リカバリーモード)。結果として、Googleロゴから先に進むこともありましたが、基本的には症状変わらず。一度だけ起動したものの数秒でフリーズしてしまいました。

どうせ捨てるならと最終手段でOSイメージの焼き直しとパッチ当てを試みました。参考にしたのはこちら。

ジャンク品のnexus5xを電子レンジとパッチで直す。 – return $lock;

Nexus5Xを工場出荷時初期化~Xposed導入まで - akashisnの日記

まずはブートローダーをアンロックしなければなりませんが、そのためには短時間でも起動しなければなりません。上記ページではオーブンでマザーボード温めてますがかなり面倒です。主に分解が。自分不器用なので。

で、電源入れ直しとかしてて気付いたのですが、ある程度放置してから電源入れると先に進みやすい気がしました。温めたほうが進みやすい、という情報もありましたが、私の場合は冷やしたほうが進みやすそうと判断。

安直に冷凍庫に1分入れてから起動してみると、Androidロゴまで進み再起動。あと一歩。というわけで、さらに1分入れてから試したら起動しましたヽ(=´▽`=)ノ

注意: やりすぎると取り出した時に結露で壊れます。特に夏は危険です。真似る時は自己責任で(お約束)

起動したら大急ぎでビルド番号連打して開発者オプション有効にし、OEMロック解除、USBデバッグを有効にします(USBデバッグは不要かも?)。念のためシャットダウン後、電源ボタン+音量下げボタン同時押しでブートローダーの画面にします。

後は参考にしたページの通り。SDK Platform Tools、ファクトリーイメージ、パッチをそれぞれダウンロードし解凍。同じフォルダへ突っ込んで、コマンドプロンプトブートローダーアンロックとイメージ書き込みを行います。(fastboot.exeにパス通すの面倒なので)

使用したのは下記のもの。

SDK Platform Tools Release Notes | Android Studio

※パソコンはWin10なのでWindows用をダウンロード。最新版だった「26.0.1 (September 2017)」を使用。

Factory Images for Nexus and Pixel Devices  |  Google APIs for Android  |  Google Developers

※ファクトリーイメージ。「"bullhead" for Nexus 5X」にある「8.0.0 (OPR4.170623.009, Oct 2017)」を使用。

Nexus 5X bootloop of death fix (BLOD) | 7/30… | LG Nexus 5X

※「Boot.img from Android O DP6」を使用。

 

ファクトリーイメージ書き込みからやったけど、もしかしたら最後の対策済みブートイメージだけ書き込めば良かったのかも?元々8.0.0入ってたので(未検証)

vendor.img書き込み後にブートローダー再起動してから対策済みboot書き込むと上手くいかなかったので、vendor.img書き込み後続けて対策済みbootを書き込んだら上手く行きました。慣れている人にとっては当たり前なんですかね?良く分かりません。

当たり前ですが、データは完全に消えて初期状態になります。可能であればバックアップとるなど事前準備しておくと後が楽です。ある程度はGoogleさんが勝手にバックアップしてますが、LINEとかは面倒なので。("fastboot format userdata"実行しなければ大丈夫なのかな?未検証)

対策されたboot.imgは使用するCPUコアを制限するもので、big側の1.8GHzデュアルコアを使わないようにします。残りのLITTLE側1.4GHzクアッドコアだけで動くようになるため、高負荷時のパフォーマンスが落ちるらしいです。私の場合は体感できなかったので支障ありませんでしたけど。

ブートローダーのアンロック以外は手順通りなので思ったより楽でした。常にアンロックしておいた方がいいのかは悩ましいところです。

まだ1日しか経過していないので、症状再発したら追記します。

 

(2017/10/26追記)

2日経過し、問題ありませんでした。が、試しに再起動したら起動しなくなりました。"fastboot flash boot 4CoreOreo.img"したらまた動くようになりました。その後は再起動しても電源落としてもちゃんと起動するようになってます。ちゃんと書き込めてなかったのかな?データも残ってるので一安心です。ちなみに、USBデバッグはオフのままで問題ありませんでした。

(2017/11/9追記)

11月パッチがOTAであったので、ダメ元で適用したらブートループ再発しました。

前回と同じファクトリーイメージ焼いたり新しいの焼いたり古いの焼いたりしても状況変わらず。リカバリーモードも相変わらず起動しないので手詰まりな感じに。なんとなく"fastboot oem lock"したら端末に確認画面出たのですが、ボタン押し間違えてキャンセル選んだら起動しました。でも再起動するとまた同じ状況になる。そしてまたoemロック→キャンセルすると起動する。起動するとシステムアップデートの通知出るし、OTAアップデート時のゴミが残ってて更新の続きをするためのブートモードになっているのかなーと推測。まずはゴミ掃除のため「Googleサービスフレームワーク」のデータを削除し開発者フレームワークの通知をOff/On。(データ削除は副作用あるらしいのでご注意を)

この状態で最新のファクトリーイメージをflash-all.batで適用したところ、droid君が倒れてる画面になり何も操作できず。文鎮覚悟しましたが、再起動したらGoogleロゴの次の画面まで行ってフリーズ→リブートしたので、パッチ当てたら("fastboot flash boot 4CoreOreo.img")起動するようになり、再起動でも問題なくなりました。ヽ(=´▽`=)ノ

楽しいけど心臓に悪いです。端末がダメになるのが先かUSBケーブルがダメになるのが先かの勝負みたいにもなってたりして。

教訓:OTAアップデートはダメ絶対。

メモ:開発者オプションでシステム自動アップデートを無効に。設定のシステムアップデートは触らない。

(2017/12/11追記)

端末がフリーズし、自動的に再起動した。その日のうちに何度か発生し、だんだんとOS起動が完了しなくなり、しまいにはブート画面さえ出なくなった。電源入れても赤ランプが点くだけになり、完全にお亡くなりになった模様。