カテゴリー

ほぼ脱GoogleしたAndroidで快適に使えるスマホを作る

仕事が来ているかはともかくとして、仕事用とプライベート用で端末を分けたくなり、新しくXiaomiのスマートフォン「Redmi Note 9S」を買いました。
私はAndroidが特に好きな一方で、Googleのことは嫌悪していて、Google製のアプリが入った状態では使いたくありません。なのでそれらが排除されたカスタムROMと呼ばれるもののうちの一つ「LineageOS」を好んで使用しています。プライベート用の端末でもこれを使っています。Note 9SにもLineageOSをインストールしようと思っていました。
さらに、Android 8.0からは「Project Treble」という機能が実装され、これは要約すると、それまで同一になっていたSoCメーカーの実装とAndroid OSを分離することでOSのアップデートを容易に行えるようになるというものです。これによって仮にNote 9S用にカスタムROMが容易されていなくても、LineageOSのGSIイメージ(Treble用のOSイメージ)があればインストールして使うことができます。一応、Note 9S用の非公式ROMは存在しますが、ROMの更新はそれをメンテナンスする人頼みになってしまうというデメリットがあります(GSI版のLineageOSでも同じだがまだ希望があると言っていいと思う)。
そして、完全に脱GoogleするとGoogle Mobile Services (GMS)を使っている一部のアプリ(ProtonMailやSlackなど)でプッシュ通知などの機能が使えなくなってしまいます(OSのAOSPはオープンソースですがGMSはプロプライエタリなため。Huaweiの最近の話と同じです)。これも「microG」といったアプリを使って解決していこうと思います。
そういうわけで、今回はNote 9SにLineageOSのGSI版をインストールして脱Googleしつつ、microGでGoogle Mobile Servicesで使いたい機能を利用するチュートリアルを書いていきます。
Note 9Sの基本的なスペックはこのような感じ。
  • CPU:SnapDragon 720G
  • RAM:4GB
  • ストレージ:64GB
  • ディスプレイ:2400×1800 6.67インチ(でかい)
必要なもの
  • WindowsのPC
    仮想マシン内でも可。
  • Miアカウント
    アカウントの作成にはログインの度にSMSを受信できる電話番号が必要です。よしなにやってください。
  • Android SDK
    fastboot/adbコマンドの実行に必要。Windowsでコマンドを実行するには管理者権限のコマンドプロンプトでfastboot.exeのあるディレクトリまで移動して “fastboot.exe flash …” と実行する。
  • Xiaomiのアンロックツール
  • XiaomiのUSBドライバー
  • XiaomiのMiFlashツール
    トラブル時の復旧用。
  • LineageOSのGSIイメージ
    色々バージョンはあるが “…arm64_bvS.img.xz” をダウンロードする。xzで圧縮してあるのでそれを解凍するツールも必要。

LineageOSをインストールする

GSIイメージをインストールするには、端末のブートローダーのアンロックという作業を行う必要があります。スマホメーカーによってこのやり方は違います。
  1. スマホ側で「設定」→「デバイス情報」→「MIUIバージョン」を7回タップして「開発者向けオプション」を有効にする。 「追加設定」→「開発者向けオプション」→「OEMロック解除」をオンにし「Mi アカウント状態」からMiアカウントにログインして、諸々の手続きを行います。
  2. PC側でアンロックツールを開き、端末は電源を切り、音量下ボタン+電源ボタンを同時押しで起動するとfastbootモードになるのでPCと接続して、アンロックを開始します。すぐにはアンロックできず、168時間(一週間)後にもう一度行う必要があります。
    Xiaomiのアンロックツール
  3. (このステップは飛ばしていい)アンロックできたら、vbmetaをダウンロードし、再度fastbootモードにして以下のコマンドを実行。
    1.
    fastboot --disable-verity --disable-verification flash vbmeta vbmeta_note9s.img
    fastboot --disable-verity --disable-verification flash vbmeta vbmeta_note9s.img
    fastboot --disable-verity --disable-verification flash vbmeta vbmeta_note9s.img
  4. 以下のコマンドで「fastbootd」モードに入る。USBドライバーのインストールが必要(なはず)。
    1.
    fastboot reboot fastboot
    fastboot reboot fastboot
    fastboot reboot fastboot
  5. GSIイメージを焼く。「system.img」はダウンロードしたイメージのパスに置き換えて実行する。
    1.
    fastboot flash system system.img
    fastboot flash system system.img
    fastboot flash system system.img
  6. リカバリーに再起動。
    1.
    fastboot reboot recovery
    fastboot reboot recovery
    fastboot reboot recovery
  7. 「Wipe Data」でデータ削除して再起動。
これLineageOSが起動するはずです(失敗したら復旧ツールでもとに戻してもう一度トライ)。私はこの後に暗号化の設定を行いましたが、問題なく起動できました(FBE:File-based Encryption、ファイルベース暗号化で暗号化される)。

microGでGMSを導入する

microGのインストールには署名スプーフィングに対応したROMである必要があります。LineageOS(GSI)は対応しています。
  1. F-Droidをインストールし、続いてmicroGのサイトからリポジトリをF-Droidに追加する。リポジトリの更新後、「microG Services Core」「microG Services Framework」「FakeStore」をインストールする。
  2. microG Services Coreを開き、「Self-Check」から「System grants signature spoofing permission」をタップし許可する。
  3. 「Google device registration」、「Google Cloud Messaging(プッシュ通知)」をオンにする。
  4. 再起動し、Self-Checkで「Signature spoofing support」「Installed packages」のすべての項目にチェックがついていることを確認する。していなければ以下のコマンドで有効化する。
    1.
    adb shell pm grant com.android.vending android.permission.FAKE_PACKAGE_SIGNATURE
    adb shell pm grant com.android.vending android.permission.FAKE_PACKAGE_SIGNATURE
    adb shell pm grant com.android.vending android.permission.FAKE_PACKAGE_SIGNATURE
これでGoogle Mobile Servicesによるプッシュ通知を受け取ることができるようになりました(ProtonMailで確認済み)。

その他

  • カスタムROMでバグりがちなWi-Fi/Bluetooth/カメラ/指紋認証などは問題なく動く(ここも参照)。
  • rootはPHH-SUによるSUがあるが、Magiskもインストールできる。Xposedモジュールも動くかどうかまでは試していない。
  • Google Playストアの代替はAurora Storeで問題なし。
  • 本当はTWRPをインストールしてTWRPからROMを焼きたいところだが、TWRPを焼くとSystemパーティションが表示されないためシステムイメージを焼くことができず、fastbootdモードにも入れない。そのため、GSIのアップデートがあった場合は都度PCに接続してfastbootdモードに入ってからROMを焼く必要があり、その点では不便に感じた(Note 9S用の非公式TWRPはfastbootdに対応していない)。
  • ANXCameraは動かなかった(カメラなんてどうでもいいが)
広告

投稿をシェア

記事の内容が面白いと思ったら、SNSでシェアしていただけると記事を投稿するモチベーションにつながります。

コメントを残す

メールアドレスが公開されることはありません。