Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
avdroot — Android StudioエミュレータのramdiskをMagiskでパッチしてroot化する — 純粋なGoで。 | Kitploit
ツール/GitHubGitHub/ejfkdev/avdroot
Androidセキュリティ特権昇格ウェブプロキシと傍受モバイルアプリペンテストリバースエンジニアリングペネトレーションテストモバイルセキュリティユーティリティとフレームワークバイナリ解析
GitHubejfkdev/avdroot

avdroot

Android StudioエミュレータのramdiskをMagiskでパッチしてroot化する — 純粋なGoで。

33815日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

avdroot

Android Studio エミュレータの ramdisk を Magisk でパッチして root 化 — 純粋な Go で。

CI Release License: MIT Go version Platforms Built with ZCode

English · 简体中文


avdroot は、コールドスタート状態の AVD から、コマンド1つで動作する root シェルまでを実現します。すべての処理はホスト側で行われます。ramdisk は展開され、Magisk の init が /init を置き換えるように書き換えられ、再圧縮されます。イメージのビルドにはシェルスクリプトも busybox も magiskboot も不要で、エミュレータ内でのコード実行も必要ありません。``` $ avdroot root ==> Target Pixel_10_Pro_XL (the only AVD) ==> Preparing Magisk's environment Magisk's files are not unpacked yet; writing them for 31.0 now ok 14 files written for Magisk 31.0, before the restart that will use them ==> Patching preinit device: vdd1 (read from the running emulator) ==> Restarting the emulator booting cold, because a snapshot would restore the pre-patch ramdisk ==> Installing the Magisk app ok installed com.topjohnwu.magisk (Magisk 31.0) ==> Granting su to the adb shell ok uid 2000 allowed ==> Verifying root ok Magisk 31.0:MAGISK:R is running ok su grants root

root: uid=0(root) gid=0(root) groups=0(root) context=u:r:magisk:s0

## 目次

- [なぜもう一つ必要なのか](#why-another-one)
- [インストール](#install)
- [クイックスタート](#quick-start)
- [コマンド](#commands)
- [仕組み](#how-it-works)
- [Magisk リリースの選択](#choose-a-magisk-release)
- [このツールが対処する落とし穴](#traps-this-tool-handles)
- [Chrome からの HTTPS キャプチャ](#capturing-https-from-chrome)
- [プラットフォームサポート](#platform-support)
- [出力言語](#output-language)
- [開発](#development)
- [クレジットとライセンス](#credits-and-licence)

## なぜもう一つ必要なのか

[rootAVD](https://github.com/newbit1/rootAVD) はこの手法を開拓し、今もなお
そのリファレンスであり続けていますが、最近の Android と
Magisk のリリースには追随していません。Android 17 の AVD に対して実行すると
問題が明らかになり、それぞれがここで修正されています:

| rootAVD の動作 | avdroot |
|---|---|
| `bash`、`busybox`、`unzip`、`xxd`、`strings`、`dd`、`cpio`、および GNU の `stat`/`sed`(macOS では異なる)を必要とする | 単一の静的 Go バイナリ。cpio、LZ4、gzip、xz はすべてプロセス内で実装 |
| スクリプトとバイナリをエミュレータにコピーし、そこで自身を実行する | イメージを完全にホスト上でビルドする |
| 実行のたびに `ramdisk.img` をバックアップするため、最初のパッチ適用後には「無傷の」バックアップ自体がパッチ済みとなり、`restore` でストックに戻せない | 一度だけバックアップし、上書きせず、既存のバックアップがパッチ済みであることが判明した場合は警告する |
| Magisk の古い `magisk32`/`magisk64` レイアウト向けにパッチを適用 | Magisk 26+(`magiskinit`、`magisk`、`init-ld`、`.backup/.rmlist`)を実装 |
| ramdisk のパスを引数として貼り付ける必要がある | SDK、AVD、イメージを自動検出し、`--sdk`/`--avd-home` で上書き可能 |
| 無条件に再起動して期待する | コールドブートを強制し、`su` が実際に `uid=0` を返すことを検証する |

## インストール

**ビルド済みバイナリ** — [Releases](https://github.com/ejfkdev/avdroot/releases) から
お使いのプラットフォーム用のアーカイブを取得してください:```sh
tar -xzf avdroot_linux_amd64.tar.gz
chmod +x avdroot_linux_amd64
sudo mv avdroot_linux_amd64 /usr/local/bin/avdroot

Windows および macOS のアーカイブには単一の実行ファイルが含まれています。macOS では、quarantine 属性をクリアする必要がある場合があります:```sh xattr -d com.apple.quarantine avdroot_darwin_arm64

すべてのリリースでは `SHA256SUMS.txt` も公開されています:```sh
sha256sum -c SHA256SUMS.txt --ignore-missing

Go を使用する場合(1.24 以降):```sh go install github.com/ejfkdev/avdroot@latest

Go 1.24 が最低要件である理由は、それ以前のツールチェーンは `LC_UUID` ロードコマンドを出力せず、macOS 26 の `dyld` がそのようなバイナリの起動を拒否するためです。Go 1.21 と 1.22 も同様に `minos 26.0` を刻印するため、両方の条件で失敗します。

**ソースから:**```sh
git clone https://github.com/ejfkdev/avdroot
cd avdroot
make build          # host binary
make all            # every release target into dist/

また、adb とエミュレータを含む Android SDK、および google_apis または AOSP システムイメージが必要です。Play Store のイメージはこの方法では root 化できません。adb root を拒否するため、patch と root は数分後に失敗するのではなく、即座に拒否します。

クイックスタート```sh

avdroot list # what exists, and what state it is in avdroot root # patch, restart, install the app, grant su, verify

これで全体です。`root` は AVD が1つしか存在しない場合に AVD 名を必要とせず、一度だけ確認を求め、stdin がターミナルでない場合は質問を完全にスキップします:```sh
avdroot root Pixel_10_Pro_XL --yes     # named AVD, unattended

一括ではなく段階的に行いたい場合:```sh avdroot patch # patch only; the emulator need not be running avdroot patch --dry-run # show what would change, write nothing

restart the emulator yourself, then

avdroot install && avdroot verify

元に戻すには:```sh
avdroot restore                # restores ramdisk.img.backup

コマンド

コマンド説明
avdroot root [target]パッチ適用、再起動、インストール、su 付与、検証 — 無人実行
avdroot patch [target]ramdisk のみをパッチ; 書き込み前に確認
avdroot restore [target]ramdisk.img.backup から復元
avdroot listAVD、システムイメージとそのパッチ状態
avdroot status [target]1 つのターゲットの詳細 (preinit デバイスを含む)
avdroot verify [target]Magisk が動作し su が uid=0 を返すことを確認
avdroot install実行中のエミュレータに Magisk アプリをインストール
avdroot magisk infoどのインストーラが使用されるか、およびその対応内容
avdroot magisk fetchリリースをダウンロード (--list、--version、--prerelease)
avdroot trust-chromeChrome に傍受 CA を信頼させる (--cert、--clear)
avdroot doctor各パスがどのように特定されたかを説明

target とは、AVD 名、システムイメージのパス、または ramdisk.img へのパスのことです。 avdroot <command> --help で各コマンドの例を表示します。

グローバルフラグ

これらはすべてのコマンドに適用されます:

フラグ効果
--sdk PATHAndroid SDK ルート (検出が誤ったものを選んだ場合)
--avd-home PATHAVD 定義が存在する場所
--serial SERIAL複数のデバイスが接続されている場合に使用するデバイス
--magisk PATH特定の Magisk インストーラを使用
--abi ABI検出された ABI を上書き
--compress FORMATramdisk の圧縮形式を上書き (gzip、lz4_legacy、lz4、xz)
--preinit DEVICEpreinit ブロックデバイスを上書き
--lang出力言語 (en または zh)、システムロケールを上書き
--no-adb実行中のエミュレータに接続しない
--no-downloadMagisk インストーラを自動的に取得しない

知っておくべきフラグ

フラグコマンド効果
-y、--yesroot、patch確認プロンプトをスキップ
--dry-runpatch計画を表示し、何も書き込まない
--forceroot、patchすでにパッチ済みの ramdisk を再パッチ
--no-installrootMagisk アプリのインストールをスキップ; root 化はこれに依存しない
--no-restartroot、trust-chromeエミュレータまたはブラウザをそのままにする
--timeout 10mroot起動を待つ時間
--keep-verity、--keep-forceencryptpatchどちらもデフォルトで有効; 無効にすると fstab オプションを削除
--recovery-modepatchリカバリ用にパッチ (API 28 では暗黙的に適用)
--cert PATHtrust-chrome信頼する CA; 省略時は自動検出
--cleartrust-chromeブラウザの信頼を元に戻す
--listrestore、magisk fetch実行せずに一覧表示

仕組み

最新のシステムイメージの ramdisk.img は cpio newc アーカイブであり、 gzip、lz4、または xz で圧縮されています。Android 11 以降のイメージは、 1 つの圧縮ストリーム内に 2 つのアーカイブ — 汎用 ramdisk とベンダー ramdisk — を連結していることがよくあります。パッチ適用とは、次のことを意味します:

ツールをダウンロード