
CVE-2019-2215 を arm32 に移植し、denylist + root app installer で /sbin に su バイナリをマウントするアプリ。firehose/Magisk ガイド含む
Sonim XP3800 のルートアクセス。2つの方法があります — 状況に合わせて選択してください。
Root Manager アプリは CVE-2019-2215(binder use-after-free カーネル脆弱性)を利用して、デバイス上で直接 root を取得します。コンピュータ不要、ブートローダーのアンロック不要、フラッシュ不要です。エクスプロイトバイナリは、XP3800 の 3.18.71 カーネルをターゲットにした完全な ARM32 ポートです — すべてのカーネル構造オフセットは、デバイスのカーネルバイナリのリバースエンジニアリングから導出されました。
ADB 経由で APK をインストールし(XP3800 はデバイス自体からの APK インストールをブロックします)、[Install] をタップすると、root が /system/bin/su に永続的に書き込まれます。root は再起動後も持続し、ブートサービスやバックグラウンドプロセスは不要です — バイナリは他のシステムコマンドと同様にそこにあるだけです。
adb install RootManager.apk
ブート後最初に su が呼び出されると、カーネルエクスプロイト(約1.2秒)を実行し、永続的な root デーモンを生成します。以降の su 呼び出しは即座にデーモンに接続され(約0.13秒) — エクスプロイトもカーネル操作もありません。デーモンは setns() を介して PID 1 のマウント名前空間に入るため、コマンドは /system を含む完全なファイルシステムアクセスを持ちます。
エクスプロイトは flock() で直列化されており、同時実行(カーネルパニックを引き起こす)を防止し、失敗時には最大3回再試行します。
su は /system/bin に永続的にインストールされます。tmpfs なし、ブートレシーバーなし、再起動やファクトリーリセット後も持続します。/system はプレーンな ext4 で、自由に読み書き可能に再マウントできます。変更は再起動後も持続します。com.verizon.mdm.basicphone からデバイスオーナーステータスを剥奪し、無効化(または復元)します。詳細は Verizon MDM の削除 を参照。クレジット: @anonymousfliphonesoom_score_adj = -1000)。詳細は デーモン を参照。su を使用するのをブロックします。ユーザー/システム/すべてでフィルタリング、名前またはパッケージで検索可能。su バイナリには組み込みの拒否リストがあります。デフォルトでは、拒否リストにない限り、どのアプリも su を使用できます。アプリのメイン画面から拒否リストを管理できます — ブロックしたいアプリの横にあるチェックボックスをオンにします。
Termux と ADB シェル(uid 2000)は、拒否リストに関係なく常に許可されます。com.example.* のようなワイルドカードエントリもサポートされています。
代替方法は、Qualcomm の EDL モードと QFIL を介してパッチされたブートイメージをフラッシュすることです。
重要な詳細:
dd を使用してください。インターネットからブートイメージをダウンロードしないでください — 他のバリアントやファームウェアバージョンはデバイスと一致せず、ブートに失敗する可能性があります。XP3800 には dm-verity がありません — /system パーティションは整合性チェックのないプレーンな ext4 ファイルシステムです。カーネルコマンドラインに androidboot.veritymode=enforcing フラグが設定されていますが、完全なノーオペレーションです:dm-verity デバイスマッパーデバイスはなく、vbmeta パーティションもハッシュツリーもありません。
su -c "mount -o remount,rw /system"
# make your changes
su -c "mount -o remount,ro /system"
変更は再起動後も持続します。削除するものには注意してください — 間違ったシステムファイルを削除すると、デバイスがブートループする可能性があります。
Termux に aapt2、ecj、d8、apksigner、zip、および ~/.android/{android.jar,framework-res.apk,debug.keystore} が必要です。
./build.sh
出力: RootManager.apk
エクスプロイトとその実装については、以下で詳しく説明しています。
このソフトウェアは現状のままで提供され、保証はありません。作者は、文鎮化、破損、その他の損傷が生じたデバイスについて一切の責任を負いません。自己責任で使用してください。
| Command | Description |
|---|
su | 対話型ルートシェル(呼び出し元の環境を保持) |
su -c 'cmd' | コマンドを root で実行(システムシェルと PATH を使用) |
su cmd | -c と同じ |
su -p -c 'cmd' | 呼び出し元の完全な環境を保持してコマンドを実行 |
su --preserve-environment -c 'cmd' | -p と同じ |
su -s bash -c 'cmd' | シェルを指定 |
su --daemon | root デーモンを手動で起動(root が必要) |
su --mount-master | 互換性のために受け入れ(no-op — デーモンはすでに完全なマウント名前空間を持っている) |
su -v | 冗長なエクスプロイト出力 |