UMIDIGI F1にTWRPをインストールする+α

UMIDIGI F1を買ったのですが、TWRPを入れようと思ってもハマってしまったのでここにメモっときます。役立つといいな

カスタムROM編はこちらhttps://qiita.com/kusaanko/items/ec76767ea9ba27077519

# 注意事項
この作業をするとメーカーの保証がなくなるようです。UMIDIGIの保証がどうなってるかは知りませんが
そしてbootloaderのunlock必須です。色々lock状態で試しましたがすべてダメでした。

それとTWRPのメリットといえばroot化しなくてもsystem領域がいじれるくらいですかね。基本的にはSP Flash Tool使えばROM焼きできるので。

それと端末の暗号化がされてるのでForce Encryptを解除するzipをインストールしないとdataがマウントできません。
こちらの方は最後に手順を書いていますのでやりたい方はやってください。

そして/systemをいじるzipファイルのインストールはたいてい失敗します。それも最後に理由と直し方書いてます。

たまにUMIDIGI F1についてのTWRP関係のこと書き足すので見てみてください。
書き足すときに変更通知を送信しますね。

adbとfastbootとSP Flash Toolの知識があると早く理解できます。

# 手順
簡単に言えばbootloaderをunlockしてTWRPを焼くだけです。簡単。
その他TWRP用私作専用zipファイルの紹介があります。

# ダウンロード先
https://www.dropbox.com/sh/1m2kvxvj7wyk8hs/AAB-ezCjcDqBUnMmVxD94gBca?dl=0
こちらに全ファイルを置いています。
recovery.imgは常に最新のtwrp-x.x.x-x-f1.imgのコピーです。

あと、TWRPに関しては海外の方が作ったものがあるらしく、私の作ったUMIDIGI F1 Play用の物を無理やりUMIDIGI F1用に作り変えたものよりは上手くできています。
https://forum.xda-developers.com/t/unofficial-decryption-works-twrp-3-3-1-for-umidigi-f1-20191103.3995997/

# 1.下準備
Androidの設定＞システム＞端末情報＞ビルド番号をたくさん押してデベロッパーモードに入ります。
そして設定＞システム＞開発者向けオプションを開きます。
OEMロック解除、USBデバッグをONにします。

# 2.bootloaderのunlock
MTKのデバイスってbootloaderのunlockがいらないような気がしますが、unlockしなかったらリカバリ領域がおかしいと言われてTWRPを起動できなかったのでunlockすることにしました。
unlockすると**データがリセット**されるのでバックアップしたいゲームとかは引き継ぎコードを発行しといてください。ちなみに私はこれしなかったのでゲームのデータ消えました。

用意するもの

 - SDK Platform-Tools

adbとfastbootコマンドが使えればOKです。
まずは[ここ](https://developer.android.com/studio/releases/platform-tools.html)からダウンロードします。for Windowsですね

そしたら展開してadb.exeやfastboot.exeのあるディレクトリでコマンドプロンプトを開いてください。
PowerShellでも大丈夫だと思います。
そして次にF1をfastboot modeという状態にします。
Androidを起動した状態でUMIDIGI F1をUSBでPCに繋いでadb reboot bootloaderというコマンドを実行します。
すると画面下にfastboot mode....と表示されると思います。
これでfastbootになりました。

次に、fastboot flashing unlockコマンドを実行します。
するとメッセージがいっぱいでるのでYesの音量+ボタンを押してください

そしたらまた文字がでて Select Boot Modeと書いてあります。
この状態で固まるのでfastboot rebootとコマンドを入力してください。
するとUMIDIGI F1がリセットされてセットアップ画面になります。

# 3.TWRPのインストール

用意するもの

- [Smart Phone Flash Tool(以下SPFT)](https://spflashtool.com/)
- twrpのイメージ
- MT6771_Android_scatter.txt
- [Windows10でなければMTKのドライバ](http://www.mediafire.com/file/crvpl608lpwxg2r/MTK_Driver_Auto_Installer_SP_Drivers_20160804.exe)

TWRPのイメージは私が勝手に作ったダウンロード一覧のrecovery.imgを使ってください。3.3.1-0です。
こちらのTWRPは更新の必要があれば更新します。
不具合があったりしたら過去のバージョンも公開していますのでそちらを使用してください。
公式フォーラムのやつは私の環境では起動しませんでした。
ちなみにこれはTWRPの公式サイトで配布されてたUMIDIGI F1 Play用をUMIDIGI F1用に改造したものです。
[こちらのページ](https://jagadgetaholic.blogspot.com/2017/12/mtk-twrp-port.html)を参考に作らさせていただきましたありがとうございます。

MT6771_Android_scatter.txtに関しては少し大変です。
まずは公式フォーラムからStock ROMをダウンロード

https://community.umidigi.com/forum.php?mod=viewthread&tid=18876&extra=page%3D1
SP Flash Toolの下あるROMのダウンロードリンクです。

そしたらダウンロードしたファイルを7-zip等で開いて中にあるMT6771_Android_scatter.txtを取り出してきてください。

次にSPFTを起動してください。
解凍したフォルダの中のflash_tool.exeです。

そしてDownloadタブを開いてください。
Download-Agentが空っぽならChooseを押してMTK_AllInOne_DA.binを開いてください。

そしてScatter-loading FileはChooseを押して先程のMT6771_Android_scatter.txtを開いてください。

そして下のリストのチェックボックスのチェックをrecovery以外外します。

そしたらrecoveryのLocationのところをクリックしてダウンロードしたtwrpのイメージファイルを選択してください。

そして恐らく最初はDownload Onlyになってるとおもうのですが、ドロップボックスがFormat AllもしくはFirmware Updateの場合はDownload Onlyにしてください。

**Format AllはIMEI情報を消したりするそうなので絶対に使わないでください。**
**そして指紋認証も使えなくなると聞いたので絶対に使わないでください。**
**IMEIは直せますが指紋認証は簡単には直せないそうです。**

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318871/2b757924-6e95-fd27-dda3-c1ccf4c5772f.jpeg)

そしたらUMIDIGI F1の電源を切ります。まだUSBは接続しません。
そしてSPFTのDownloadボタンを押します。
次にUMIDIGI F1をパソコンにUSBでつなぎます。

すると作業が進んでチェックマークの画面が出ると思います。
これでインストール完了です。

SPFTの使い方がわからない方は自分で調べてください。

# 4.起動
電源を切った状態で電源ボタンと音量+ボタンを押します。（10秒くらい）
音量-だと違う画面が出ます。
多分各機能が正常に動作しているかどうかを確認するモードなんじゃないですかね。
ここで画面が変わらない場合は一度手を離してからまた押してください。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318871/06458c7f-ab72-a29b-5032-6141016efa8b.jpeg)
そしたらこの画面でボタンを押してる手を離します。
~~このとき画面にRed Stateって書いてあったら失敗してますのでやり直してください。
そしたら画面が消えるのでまた電源ボタンと音量+ボタンを押します。~~
この作業は不要みたいです。@nakamigawa12345 さんありがとうございます！
Thank you, @nakamigawa12345 .

するとTWRPが起動します。
このあとはパスワード聞かれるんですがCancel押してWipeしないといけないみたいですね。

# スマートフォンの暗号化の解除
復号化ではないです。
これをすると初期化されますが暗号化されなくなるのでTWRPでdataがマウントできます。

TWRPが起動してる状態でUSBでパソコンに接続。
**そしてadb disable-verityというコマンドを実行します。**
これめっちゃ重要です。これによりvendor領域の改造ができます。

そして次にダウンロード一覧の**disable-force-encryption.zip**をTWRPでインストールしてください。
私作です。vendor領域を書き換えます。

コマンドでやりたい方はこちら
adb shellコマンドを実行後これを実行してください。
TWRPのMountからvendorにチェックを入れといてください。

```sh
find /vendor/etc -name "fstab.*" -exec sed -i 's/discard,//g' {} +
find /vendor/etc -name "fstab.*" -exec sed -i 's/errors=panic//g' {} +
find /vendor/etc -name "fstab.*" -exec sed -i 's/forceencrypt/encryptable/g' {} +
find /vendor/etc -name "fstab.*" -exec sed -i 's/forcefdeorfbe/encryptable/g' {} +
find /vendor/etc -name "fstab.*" -exec sed -i 's/fileencryption/encryptable/g' {} +
```

最後にWipeしてください。次回起動するときにはスマートフォンの暗号化がされません。

# 配布されているファイルをインストールしても変化がない
これはファイル構成が少し特殊だからです。
通常/systemディレクトリにシステムの中身があるのですが、UMIDIGI F1だと/system/systemディレクトリにシステムの中身があります。
これはUMIDIGI F1がA/Bパーティションに対応しているためです。
なので配布されているzipファイルを書き換えればインストールに成功するようになります。

# Androidを起動するたびTWRPが標準リカバリに置き換わるのを直す
これも専用のzipファイル作ったのでadb等でファイルを転送してTWRPでインストールしてください。
ダウンロード一覧の**remove-recovery-from-boot.zip**です。
/system/system/recovery-from-boot.pファイルを削除するだけのものになってます。
zipじゃなくてもadb shell rm /system/system/recovery-from-boot.pでもいいかも。

# 普通に起動してもTWRPしか起動しなくなった
これは実際に体験しました。ある日夜寝たあと深夜に再起動したんでしょうね。そのときにどこかが破損したのかOSが起動不可となりました。

SPFTを使って全領域のROMを焼き直したのですが、それでも起動せず...
それで、解決法がこれです。
まずTWRPからRebootのbootloaderでfastboot modeに入ります。
そしてブートローダーをロックします。
音量+で確認します。
そして再起動します。

```sh
fastboot flashing lock
fastboot reboot
```

そしたらRed Stateで再起動ループするので
SPFTで純正ROMを用意して全部にチェックを入れて
Downloadを押したら、スマホの画面が暗いときにUSBをパソコンに繋いでください。
これでROM焼きが始まります。
このあとはTWRPのインストール手順を再度行えばOSが起動できるようになります。

# 編集後記
MTKデバイスはbootloaderがunlock不要だと聞いてたのでいいなぁと思ってたのですがUMIDIGI F1は必要みたいですね。残念。
またbootloaderにロックかけたいときはfastboot flashing lockです。これもデータ消えます。

ちなみに、私がハマった主な理由はリカバリの起動が少し特殊だったこと、配布されてるTWRPが動かなかったことです。

そしてカスタムROMいいですね。特にRessurection Remix OSはカスタマイズ性が好きです。

以上、UMIDIGI F1にTWRPをインストールするでした。