2018/08/28(火)Huawei nova lite/OreoにカスタムROM導入と暗号化解除
Android 8.0に更新した nova lite にカスタムROMを導入してみました。他のHuawei端末でも参考にしてください。
Trebleについて
Android 8.xのカスタムROMを入れるためには、Android 8.0 Oreo以降のファームウェアが前提となっています。すでにシステム更新でOreoのアップデートが始まっていますが、必ず Oreo/Android 8.xに更新してから以下をお試しください(強制更新の方法はこちら)。
というのも、Android OreoからProject Trebleというものが導入され、ファームウェアの使い方が変わりました。各メーカーとカスタム部分と、Androidのシステム部分を分離してしまおうという試みです。これにより、ROM(ファーム)のパーティション構成等が変更になっています。
この変更により、カーネルとシステム領域が別れたので、カスタムROMの導入は以前(7.x)より簡単になります。基本的にはシステムイメージを焼くだけで済み、カーネルはストックROMのものをそのまま使用できます。
端末のアンロック
Oreo/Treble対応TWRPの導入と暗号化解除
まずはOreo用のProject Treble対応TWRPを導入します。
2018年8月時点でP8 Lite用は完成度が低い*1ので、Honer 8用TWRPを導入しました。
暗号化解除
暗号化解除を行うとDATA領域のデータが消えます。必要に応じてバックアップをしてください。
このファイルをTWRPで焼いてから、DATA領域をFormatします。*2
このzipファイルは、vendor領域のfstabを書き換えて暗号化の指定を解除していますので、元に戻したい場合は、公式ROMのUPDATE.appから vendor.img を取り出し、TWRPから焼いてください。
カスタムROMの導入
宗教上の理由(笑)でHuaweiの公式ROMは使いたくなかったので、カスタムROMを片っ端から試してみました。カスタム性は求めてないので本当はAOSP ROMあたりで良かったのですが、exFATが使えないので、よくアップデートされている LineageOS を導入しました。
試した中ではDotOSも結構良かったです。
準備
- Oreo用のTWRPを導入
- DATA領域の暗号化解除*3
- LineageOS 15.1をダウンロード
- Open GAppsからARM64版Andoriod 8.1(LineageOSの指定に合わせる)用を落とす。microかnanoあたりが良いと思います。
落としたzipファイルをSDカードにコピーします。TWRP上のUSB/MTP接続を使うと楽です。
導入
ファイル名を適当に読み替えてください。
- TWRPを起動。*4
- LineageOS15.1-Hi6250-07-27-2018.zip を焼く。
- open_gapps-arm64-8.1-nano-2018XXXX.zip を焼く。
- Wipe から Format Data(DATA領域フォーマット)。
- 再起動。
後からGAppsを焼くと色々と面倒なことになりますので、その場合は潔くDATA領域をフォーマットしてください。
無事に起動すれば、初期設定画面が表示され、LineageOSが使えるようになります。
ちなみに、nova liteのNFCチップが特殊らしく、カスタムROM全般でNFCが使えないのが難点ではあります。日本版(nova liteとして売られているもの)はそもそもNFC非対応のようです。
overlayの導入(root必須)
カスタムROMを導入した場合、P8 lite用のOverlayも入れておきます。
Project Trebleに従い、機種固有の設定情報みたいなものを /vendor に置いておきましょうというものらしいです。リンク先のスレッドを読むと、公式のEMUIはこの情報を /system に抱え込んでるようですね……。
ダウンロードした「dil3mm4-overlay-PRA.apk」を、/vendor/overlay にコピーしてから、以下のコマンドを実行します。
chcon u:object_r:vendor_overlay_file:s0 /vendor/overlay chcon u:object_r:vendor_overlay_file:s0 /vendor/overlay/dil3mm4-overlay-PRA.apk
これを導入する前は画面の自動明るさ調整が敏感すぎて困っていたのですが、導入後は修正されたようです。
Magiskの導入とfingerprintの修正
root取得とSafetyNetの「CTS Profile」修正のためにMagiskを導入し、fingerprintを修正します。
- MagiskのGithubから、最新のものをダウンロード(v20.4にて動作確認)
- huawei-fix-fingerprint.zipをダウンロード*5。
- SDカード等にコピー。
- TWRPを起動。
- Magisk-vXX.X.zipをインストール
- huawei-fix-fingerprint.zipをインストール
- 再起動
これでアプリ一覧にMagiskが表示され、Magisk ManagerからSafetyNetテストをしたとき、CTS Profileがtrueになるはずです。
カスタムROMによって「basicIntegrity: false」のことがありますが、これはMagiskやUniversal SafetyNet Fix等では修正できないようです。*6
公式ROMでも、ブートローダーロックが外れていると「CTS Profile: false」になるようです。これは、Magiskを導入することで(fingerprintの修正は不要)修正できます。
huawei-fix-fingerprint.zipについて
解凍して common/post-fs-data.sh 見れば分かりますが、ro.build.fingerprint を ro.vendor.build.fingerprint で上書きしているだけです。
ro.vendor.build.fingerprint が適切に設定されているならHuawei以外の端末でも使えるはずです。
Magisk関連メモ
SafetyNetが「The Response is Invalid」になる。v17.1にて改善。- SafetyNet Helper Sampleで問題がなければ、SafetyNetの問題ではない。
- ゲームやその他アプリが起動しない
- そのアプリに対しMagisk Hideを設定する。
- Magisk Managerでパッケージ名を隠す。
- Pokemon Goが動作しない。
- /sdcard/MagiskManagerフォルダを消す。その後でPokemonを再インストールかデータ消去して、再度起動。*7
- Radikoが起動しない
- 何らかの方法でMagis本体を検出してるっぽい。
- ×root化端末からMagiskManagerだけをアンインストール
- ×非root化端末にMagiskManagerを入れる
まとめ&感想
カスタムROMのせいか急速充電できない。- 記事執筆後、最近のLineageOS 15.1では改善しているようです。
- LineageOS 15.1はSafetyNetに対応できる。
値段が値段だけにディスプレイとカメラ以外はコスト削ってる感あり、ブートローダアンロックサービスも終わったのでカスタムROMも下火になりそうですし、次買うとしたらHuawei以外かな……。