2ヶ月程前Rakuten MiniにAndroid 14のカスタムROMを導入しました。
sgrmatha.hatenablog.comこれまでLineageOS 18.1(Android 11)を導入しGPSロガー兼ボイスレコーダーとして使っていましたが、今年に入ってGPS周りに不具合が出るように。
GPS測位に2,3分もかかるようになり、その上前回のGPS測位結果がリセットされてしまいその都度イチから測位をやり直すため毎回測位まで2,3分かかるようになってしまったのです。
つまり最初の2,3分のGPSログが取れない、という事になり、これでは当然GPSロガーとして使い物になりません。
原因が全く分からないので、それならとカスタムROMを焼き直し再セットアップする事に。
どうせROMを焼き直すのなら元のLineageOSではなく最新版のAndroid 14のものにしたいと思いGSIカスタムROMリストを見ていると、Nazim氏ビルドのAndroid 14版crDroidがあるのを発見。
実はNazim氏ビルドのGSIカスタムROMはAndroid 13版のcrDroidとSparkOSを試した事があり、いずれも起動し利用できたので(しかし使い勝手の面で不満点があったので結局LineageOSに戻した)セキュリティーパッチバージョンが少し古かった(導入した時のバージョンで2024/1)ものの起動できる可能性が高いこれを選びました。
ROM焼き前の予想通り問題なく起動でき、無事Rakuten Miniが最新のAndroid 14搭載端末に。
ROM焼きの注意点としてはMagiskはTWRPからインストールする必要がある事。
カスタムリカバリーを使ってMagiskをインストールする方法は今では旧式で、非推奨の方法とされていますが、Rakuten Miniはこの方法でないとWiFiが死にます(ONにできない)。
GAppsはROMに含まれているので、別途導入する必要はありません(しかしデバイス登録する必要はあるかも)。
今回ROM焼きした最大の理由であるGPSの測位については問題なく、これまで通りGPSログ取りができるようになって何より。
以前Android 13版を使った事があるので知っていましたが、crDroidの多機能ぶりには驚かされます。
Googleフォトへの無制限画像アップロードに対応したPixelに偽装してそれを有効にするとかバレると垢BANされる事は間違いない機能まで搭載されています。
それにしてもこれはあかんやろ…
Xiaomiなど中華メーカーの端末に搭載されている事が多いLINEなど「1端末1アカウント」のサービスを1台の端末で2つ利用できる機能も搭載。
個人的にはpovoアプリを2つ使えると便利だなと思ったのですが、上記の通り私はRakuten MiniをGPSロガー兼ボイスレコーダーとして使っているのでGoogleアカウントを登録していない(する必要がない)ため宝の持ち腐れなんですよね…
ここに挙げた以外にも機能が多彩で、ROM自体の満足度は高いです。
しかしAndroid 13版にあったアンテナピクトの通信方式表示を小さくする設定(旧スタイルのアンテナピクト)がなくなったのが残念…
そう言えば上に書いたAndroid 13版crDroid、SparkOSを使うのを止めた使い勝手の不満点、実は「スワイプアンロックがうまくいかず、なかなかロック解除できずイライラする」だったのですが、解決法が見つかりました。
それは「ロック画面上のカギマークを長押しする」事。
それなのにロック画面には「開くには上にスワイプします」と書かれていますが、それではロック解除できません。
それを知らずに何度も画面をスワイプし「ロック解除できない!!」とイラついていたというのが事の真相だったわけです。
用途がGPSロガー、ボイスレコーダーなのでGoogleアカウントを登録していませんからPINロックをかける必然性がないのでスワイプアンロックで使いたいんですよね。
もしこの問題を解決できなければまたLineageOSに戻さないといけないな、と思っていましたが杞憂に終わり、このROMの実用を続ける事に決定。
しかし必要なアプリをインストール(サイドロード)していたら問題発生。
このように古いアプリのインストールに失敗してしまうのです。
これはAndroid 14の制限であり、crDroidのせいではないのですが、余計な事しやがってGoogle、としか言いようがありません。
「ウザいな、これならAndroid 13のcrDroidにするか」と思ったのですが、ちゃんと解決方法はあります。
ADB環境がセットアップされているPCにインストールしたいAPKファイルをコピーし、開発者オプション、USBデバッグを有効にしたAndroid 14搭載端末をつないでコマンドプロンプトを起動し、次のコマンドを入力すればOK。
adb install --bypass-low-target-sdk-block (APKファイルのパス/ファイル名)
rootは不要です。
PCを使う必要があるというのが面倒ですが、バッチファイルを作成して必要なアプリをまとめてインストールする事ができるという利点もあります。
端末がroot化されていて、LSPosedがインストールされていれば"Disable Target API Block"というXPosedモジュールをインストールする事で(画像左)このウザい制限を回避してこれまで通りアプリをインストールできるようになります(画像右)。
その後セキュリティーパッチバージョンが2024/5となるcrDroidの最新版が出ました。
アップデートしようと思ったのですが、GSIのカスタムROMは上書きインストール(dirty flash)できないような気がして「ファクトリーリセットが必要だと面倒だな」と思い躊躇したのですが、意を決してやってみました。
fastbootでインストールするとダメそう、と思いまずはTWRPからROMイメージをインストールする方法を試してみたところ、crDroidのブートアニメーションが出た瞬間落ちてしまい、ブートループに陥ってしまう。
bootloaderモードで起動し、「Boot to FFBM」を選択して再起動すれば起動できる事が分かりましたが、普通に電源ON/再起動するとやはりブートループに陥るので毎回これをやる必要がありこれは失敗。
正しい上書きインストール方法はPCを使いfastbootコマンドでROMイメージをインストールした後「fastboot reboot bootloader」コマンドでbootloaderモードで再起動し、そこで上記と同じように「Boot to FFBM」を選択して再起動。
すると次回以降の再起動時は普通に起動するようになります。
これでGSI ROMでもファクトリーリセットなしでROMを更新できる事が分かりましたが、旧バージョンではなかった不具合や不満点が出るように。
まずBluetoothをONにできなくなった事。
旧バージョンではBluetoothデバイス名を変更できないという不具合があったもののBluetooth自体は正常動作していましたが、新バージョンではBluetoothそのものが利用できない(ONにしてもすぐにOFFに戻ってしまう)。
外ではBluetoothテザリングでネット接続する事が多いのでこれは困ります。
そしてたまにロック画面に位置情報アクセス中を示すマークが表示される事。
電源ボタンを押して画面をONにしただけなのに位置情報にアクセスしているというのはおかしい。
当然他の端末ではこんな事はないし、旧バージョンのcrDroidでも発生しなかったのに…
これ、原因を探るとシステムUIが位置情報にアクセスしている事が分かり、システムアプリなので位置情報アクセスを無効にしたりGPSを偽装したりといった対策が取れないのが厄介。
何が目的なのかも不明だし、はっきり言ってキモい。
って言うかAndroidは明らかに位置情報アクセスが不要なアプリがそれを求めてくる事が多いのが不満ですし、それが私がrooted端末しか使いたくない理由の一つなんですよね…
上書きインストールが原因のような気がするので、ファクトリーリセット込みでROMを焼き直した方がいいかな、と思っているのですが、内蔵ストレージが初期化されるので再セットアップが面倒。
それなら別のROMを試してもいいですし。
もしくは次のバージョンを待つか前バージョンに戻すかですが、後者はあまりやりたくないんだよな…
そんなにヒマがあるわけでもないので、ぼちぼち考える事にします。