2019年1月15日火曜日

Nexus5XをLineageOS導入済みの状態から工場出荷状態に戻す

LineageOSをインストールして使っているNexus5Xですが、どういう理由か、LineageOSのアップデートが適用できなくなってしまいました。
アップデートのダウンロードはできて、インストールも選択できるのですが、TWRPの画面で「zipのシグネチャが違う」と言われてエラーになります。

何が原因かわからないのですが、色々試行錯誤するよりは、また一からLineageOSを導入したほうが早そうなので、そのようにしたいと思います。

ついでと言ってはなんですが、先日ファクトリーイメージを確認した際に、LineageOSがインストールされた状態から、完全に工場出荷時の状態に戻せそうだったので、
試してみたいと思います。

やり方は、こんな感じです。

まずFactory Images for Nexus and Pixel Devicesから最新のファクトリーイメージをダウンロードします。

2019/01/15現在の最新のイメージは「bullhead-opm7.181205.001-factory-5f189d84.zip」でした。

このzipファイルの中にある
radio-bullhead-m8994f-2.6.42.5.03.img
bootloader-bullhead-bhz32c.img
と、更にその中にある、「image-bullhead-opm7.181205.001.zip」の中の、
boot.img
recovery.img
system.img
vendor.img
の合計6ファイルを取り出します。

次に、本体の電源を切った後、音量小ボタンを押した状態で電源ボタンを押し、fastbootモードに入ったら、以下のようにしてそれぞれのイメージを焼きこんで行きます。
fastboot flash boot boot.img
fastboot flash bootloader bootloader-bullhead-bhz32c.img
fastboot flash radio radio-bullhead-m8994f-2.6.42.5.03.img
fastboot flash vendor vendor.img
fastboot flash recovery recovery.img
fastboot flash system system.img
すべてのファイルの焼き込みが完了したら、以下のようにしてシステムを再起動させます。
fastboot reboot
再起動後、数分間起動のスプラッシュ画面が続きます。
端末の使用状況によっては、うまく起動できない旨のエラーメッセージが表示される場合があります。

エラーメッセージに続いて、工場出荷状態に戻すかの選択肢が出てくるので、YESを選択してください。

再起動後、また数分間起動のスプラッシュ画面が続き、うまく行けば、初期設定の画面が表示されます。

2019年1月11日金曜日

LineageOS導入済みNexus5xで表示される「ベンダーイメージの不一致」エラーの対処法

LineageOSをインストールして使っているNexus 5Xですが、ある時から起動時に以下のメッセージが出るようになりました。
Androidシステム
ベンダーイメージの不一致を検出しました。
ベンダーイメージが最新でない可能性があります。
ベンダーイメージがOPM7.181205.001と一致しているか確認してください。
ちょっと調べてみましたが、このメッセージは、端末に書き込まれているベンダーイメージ(flashのvendor領域に保存されているイメージ)のバージョンと、LineageOSが期待するベンダーイメージのバージョンに違いがある場合に出るようです。

Nexus 5Xについては、2018/12現在、まだサポートが継続していて、ファクトリーイメージが更新される度に、ベンダーイメージやブートローダー、無線関連のファームウェアなどが更新されています。

一方、LineageOSの方も、Nexus5Xに最新のベンダーイメージがインストールされていることを期待しているようで、LineageOSがバージョンアップされる際に、そのタイミングで提供されている最新のベンダーイメージがインストールされているかを確認するように修正しているっぽいです。

ということで、このエラーを出ないようにするには、Nexus 5Xの最新のファクトリーイメージを取得し、そのアーカイブの中からベンダーイメージを抜き出して、本体に書き込んでやればよいです。

例えば、Factory Images for Nexus and Pixel Devicesからダウンロードできる2018/12のNexus 5Xのファクトリーイメージ、
bullhead-opm7.181205.001-factory-5f189d84.zip
の中には、アーカイブ「image-bullhead-opm7.181205.001.zip」が含まれており、その中に、
vendor.img
が存在しています。

ついでに、元のアーカイブの直下には、ブートローダー及び無線ファームウェアである
bootloader-bullhead-bhz32c.img
radio-bullhead-m8994f-2.6.42.5.03.img
が含まれています。

これらをfastbootを使って本体に書き込んでやればよいです。
(今回の問題はvendor.imgだけ更新すれば解決しますが、ブートローダーと無線関連のファームウェアは新しいに越したことはないので、合わせて更新します。)
fastboot flash bootloader bootloader-bullhead-bhz32c.img
fastboot reboot-bootloader

fastboot flash radio radio-bullhead-m8994f-2.6.42.5.03.img
fastboot reboot-bootloader

fastboot flash vendor vendor.img
fastboot reboot
みたいな感じです。
再起動後にはエラーメッセージが出なくなっている筈です。


余談ですが、NexusやPIXELのファクトリーイメージには、オリジナルのリカバリーであるrecovery.imgが含まれているようで、LineageOSを導入するためにリカバリーをTWRPに書き換えてしまっても、完全に元の状態に戻せそうです。

ASUS Zenfoneでは、オリジナルのリカバリーは配布されていないのに比べて、とても親切ですね、さすがGoogleです。