UMIDIGI F1にカスタムROMをインストールする+α

# はじめに
この記事はhttps://qiita.com/kusaanko/items/c43ca4173c9b8374de5e の続きです。こちらの記事を読んだあとにこの記事を読んでください。

**また、この記事には絶対にやってはならない注意点も書いてあるのでしっかり全部読んでから実行してください。**

# カスタムROMをダウンロードする
UMIDIGI F1はProject Treble対応です。
ですので、Project Treble対応の好きなROMを選べます。
Project TrebleはOreo以降なのでOreo以降のOSしか使えません。
そしてUMIDIGI F1はA/B対応です。
なのでインストールするROMは間違えると起動しません。
インストールするROMはGSIのA/Bと書いてあるやつです。
A Onlyとかはダメです。
SPFTを使ってsystemにROM焼きしてくださいね。
ちなみにResurrection Remixの7.0.1のGSI A/B nosuをインストールしましたが~~SIM以外普通に動きました。（SIMの認識はするが、通信ができないので使えない）~~
2020/01/06更新：SIMが使えるようになりました。

# OpenGAppsをインストールする
OpenGAppsの公式ページからarm64の自分のOSに合わせたものをダウンロードしてください。
ここで問題発生です。
OpenGAppsはA OnlyとA/Bを判断して適切にインストールしてくれるようですが、UMIDIGI F1ではうまくA/Bを認識できないので改造する必要があります。
OpenGAppsのzip内のinstaller.shを展開します。
そして中にある

```sh
if [ -n "$(cat /proc/cmdline | grep slot_suffix)" ];
then
  device_abpartition=true
  SYSTEM_MOUNT=/system
  SYSTEM=$SYSTEM_MOUNT/system
  VENDOR=/vendor/vendor
elif [ -n "$(cat /etc/fstab | grep /system_root)" ];
then
  device_abpartition=false
  SYSTEM_MOUNT=/system_root
  SYSTEM=$SYSTEM_MOUNT/system
  VENDOR=/vendor
else
  device_abpartition=false
  SYSTEM_MOUNT=/system
  SYSTEM=$SYSTEM_MOUNT
  VENDOR=/vendor
fi
```

ここを一番上の

```sh
device_abpartition=true
SYSTEM_MOUNT=/system
SYSTEM=$SYSTEM_MOUNT/system
VENDOR=/vendor/vendor
```

だけに置き換えます。
そして改造したinstaller.shをzipに戻します。
これでA/B専用OpenGappsの完成です。
が、system領域がサイズ不足でインストールできません。
**Error Code: 70はストレージ不足です。**
私はstockが好きなので毎度stockをインストールするのですが
空き容量が64MBでした。
なのでTWRPのWipe > Advanced Wipe > Systemを選択してRepair or Charge File System > Resize File Systemを実行します。これでフォーマットされずに大きくできます。
SPFTでROM焼きするとサイズが元の大きさに戻るようです。
SPFTってアドレス指定で書き込んでいるように見えるのですが、systemより下にあるパーティションを書き込んだら干渉して起動不可になるのかな？とか思って怖くてcacheとuserdataは焼いてません。焼かなくてもTWRPのWipeで十分です。

OpenGAppsの再インストール時にGAppsを削除して新しくインストールするという手順をするのですが、Gappsの削除が働かないようなので（A/Bに対応していない）zip内のgapps-remove.txtの/systemを/system/systemとすることでA/B専用に変わって再インストールができるようになります。

GAppsは英語版のものがインストールされるものもあるようなので、それに関してはGoogle Playで更新をすることで日本語に置き換わります。ただOpenGAppsのGAppsが最新なら更新できないので更新されるまでは英語のままです。
私が確認したものはフォト、マップ、YouTube、Chromeくらいです。あんましっかり見てないですがこの主要なアプリ4つが英語でした。

# 4G通信する
現状のままでは電話、SMSのみ動作するようです。4G通信できるように設定しましょう。
ただdocomoは設定無しで動いたのでもしかしたらauだけかも。
こちらに書きました。
https://qiita.com/kusaanko/items/52046e5c87ee63080c57

# 確認した問題点
SIM、Bluetooth、WiFi、カメラ、フラッシュライト、画面の明るさ調節、各種ボタン、SDカード、NFC（使いませんが有効にできました。使ってないのでわかりません）は正常に動いています。

# vendor領域は最新のものを使おう
カスタムROMはsystem領域のみを使用します。各モジュールを動作させるドライバ等はvendor領域にあります。この部分はUMIDIGIが作る部分です。[UMIDIGI F1の公式フォーラム](https://community.umidigi.com/forum.php?mod=forumdisplay&fid=212)から最新のROMをダウンロードしてsystem、userdata、recovery以外は新しいものに置き換えるのが良いと思います。SPFTで焼きましょう。
SPFTで焼く時は必ず**Download Only**で焼きましょう。
ドライバによるバグ等はこれで直ります。
**vendor領域を焼き直したあとはforce encryptを解除するzipをインストールしましょうね。(暗号化を解除したい人のみ)**
私はうっかりしててリセットするはめになりました。これ、すっごい時間が無駄なので注意してください。

# バックアップはしっかり取ろう
できればTWRPにて全領域をバックアップするのが望ましいです。
最低限system、dataです。
引き継ぎコードが発行できるものは発行してスクショしてGoogle Photosにでもアップロードしておきましょう。
不具合が起きればsystem、dataをTWRPで書き直す、というのが良さそうです。

ちなみに、Ressurection Remixのクラウドへのバックアップ機能がとっても優秀。
純正ROMのときはホーム画面のレイアウトとか設定の大部分はバックアップされなかったのですが、されるようになってました。
一部はバックアップされてませんが設定はほぼ残ってました。
ホーム画面のレイアウトもそのまま。素晴らしいです。
最低限標準のバックアップ機能を使うだけでも初期化になったときに助かります。
これはもしかしたら他のカスタムROMもそうなのかもしれません。

# 編集後記
UMIDIGI F1がProject Treble対応で助かりました。
ただ、A/Bってのはzipのインストールができるものが少ないので大変です。