見出し画像

【備忘録】Realme neo7の bootloopおよびAPatchについて



経緯

つい先日、1月19日にRealmeの深層テストに合格し晴れてBLUできるようになった。普通のOppo系端末ならグローバル版のOxygenOSを焼くところだがRealme neo7は大陸版のみ。なのでCNromでMagiskを使いRootを取ってLuckytool運用していた。しかし、金融系アプリがroot検知をしてしまい、うまく動かなかった。そこで、前回のRoot機においてKernelSUのホワイトリスト形式が気に入っていたのでKernelSUでrootを取ろうとした。
テレグラムで配布されているOSバージョンRMX5060_15.0.0.111の純正init_boot.imgをKernelSUで、パッチしFlashしたところブートループに陥った。幸いなことにFastboot(bootloader)とrecoveryモードには入れたためどうにかこうにかしようと画策していたというのがブートループの経緯だ。

bootloopからの回復方法

結論から言うとunbrickした。
ストックboot.imgがあり、fastbootとrecoveryに入れたためどうにか事なきを得た感じだ。手順を紹介する。
筆者は手当たり次第に試し、最終的に治ったがこの方法で治る保証はできない。unbrickした状況を整理した結果これで復元した可能性が高いというだけなのであしからず。
この方法はあらかじめusbデバックがデバイスに常時オンの場合しかできない。気をつけてほしい。
では行こう。

 1.Recoveryモードでwipeデータ

fastbootモードに入ってコマンドを打つとrecoveryに入れる。

fastboot reboot recovery

これでリカバリーモードに入れる。
そこからwipeデータを実行。これでデータがすべて消去される。

ここでWipe data

そしてPower offを実行。
選択は音量ボタン、決定は電源ボタンで行える。電源が切れたらボリュームダウンキーと電源キーを長押しでfastbootモードで起動する。

 2.Fastbootでboot.imgをflash

fastbootモードで起動できたら次は実際に焼いていく。コマンドは以下の通り

  fastboot flash boot boot.img

気をつけてほしいのは実際にはfastboot flash bootのあとはパスにしてほしいところだ。簡単なやり方はデスクトップに移動かコピーしたあとにcmdかshellにコピーしたやつをドラッグする。するとパスが打ち込まれるのでその状態でFlashする。以下参考だ。

これはmagiskでパッチしたものをフラッシュしているので少し違うがイメージとしてこんな感じ

これをinit_boot.img、boot.img両方焼いていく。その後、再起動コマンドを打つと回復した。

fastboot reboot 

これで復旧自体は終了。
RMX5060はboot bootコマンドが塞がれているためKernelSUは旨味がないとのこと。大人しくmagiskを使うか後述のAPatchを使うべきだ。

APatch

参考は以下の記事。

https://log.flyan.net/archives/20240712_1376


注意点だけまとめると

  1. 原則、APatchを使いたい場合Kernel側がCONFIG_KALLSYMS=y及びCONFIG_KALLSYMS_ALL=yになっている必要がある

  2. バージョン11011以前の場合はCONFIG_OVERLAYFS=yも必要(11011以降は不要)

  3. Samsung以外にも、いくつかのMediatek機では起動しないこともある

Neo7はMTKのDimensity9300+だか行けた。

まずはカーネル要件がクリアしているかどうかをチェックする。

 1.カーネル要件の確認

とりあえずrootをとってください。
boot bootコマンドが使える機種かつKernelSUが使える機種はこの記事を参考にしてrootを。

KernelSUが使えない、又はboot bootが使えない機種は配布がtelegramか何かにあるので取ってきてMagiskでパッチして普通に取ってください。
この項目は確認するのにかなり手こずったので書いておく。元記事にもないので。

Root化した前提で話す。
まずはtermuxをインストール。

そしてインストールしたら以下のコマンドを打ってスーパーユーザーを取得、確認していく。

adbコマンドを使えるように環境を構築する。

# パッケージのアップデート
pkg update
pkg upgrade
#adbのインストール
pkg install android-tools

まあルート取る段階でusbデバックはオンだろうから飛ばしていく。

これでadbが使える。次にスーパーユーザーをとる。

adb shell
su

そしてカーネル要件の確認

zcat /proc/ config.gz | grep -w CONFIG_KALLSYMS

を打って下の写真用にyと出ればよし。インストールできる。が、ブートループに陥ることがあるので人柱になるかboot bootで確認するかのどちらかだ。

あとは参考の記事通りにやれば苦労はしない。
筆者は人柱になった。だが、なって良かった。
ということで備忘録終了。

いいなと思ったら応援しよう!