UltiMorseのブログ

ASUS Nexus 7(2012)TWRPでストレージ削除→APXモードから復活した話

すべての†始まり†

ADBとかTWRPを使ってROM焼きと言うやつをやりたい。と思った子どもの頃の筆者が、お家にあったNexus7 wifi(2012)によくばって重めのOSを入れようとしフリーズ。TWRPでヤケクソのストレージ削除をしたという......(シンジラレナイ)ブートローダーってROMに入ってんねや(フット後藤)当然、画面は真っ黒でfastbootにも入れないし、Windowsだと認識も微妙。Ubuntuに慣れてきたので、この機会に復活させようじゃないかと。

前提・状態

  • 端末:Nexus 7 (2012 wifi)
  • PC環境:Ubuntu 22.04
  • eMMCは無事
  • lsusbID 0955:7330 NVIDIA Corp. APX が見えた → APXモードで認識
  • fastbootに入れない

なぜLinuxなのか

Windowsだとドライバの署名の強制を解除してもドライバのインストールが許されなかった。署名がない古くてよくわからんドライバはWindows君はお嫌いなようで。

復旧にあたって、tofurky/tegra30_debrick のREADMEやIssue(#9, #16など)を参考にしました。(この記事見るよりわかりやすい可能性


注意点

  • python3-usbパッケージについて: Ubuntu 22.04ではpython3-usbでOKですが、環境によってはpip install pyusbも必要になる場合があります。エラーが出る場合はpip install pyusbも実行してください。
  • fusee-launcherの実行パス: cd fusee-launcherしてからsudo python3 fusee-launcher.py payload/uart_payload_n7.binのように実行するのが確実です。パス指定が曖昧だと失敗する場合があります。
  • fastboot起動について: BCTとEBTが正しく書き込まれると、Googleロゴ後に自動的にOS(ROM)が立ち上がる場合があります。必ずしもfastbootで再起動しなくてもよい場合があるので、挙動を確認してください。

実践手順(2025年現在)

  1. 必須ツールのインストール
    sudo apt update
    sudo apt install git adb fastboot python3 python3-pip python3-usb build-essential libusb-1.0-0-dev
  2. 32bitライブラリ問題の解決
    sudo dpkg --add-architecture i386
    sudo apt update
    sudo apt install libc6:i386 libstdc++6:i386

    nvflashは32bitなので64bit環境ではこれが必須。
  3. tegra30_debrickの準備
    cd ~
    git clone --recursive https://github.com/tofurky/tegra30_debrick.git
  4. Pythonライブラリのインストール
    cd ~/tegra30_debrick/fusee-launcher
    pip install -r requirements.txt
  5. Nexus 7をAPXモードで接続
    音量上と電源を押しながらUSB接続。
    lsusb | grep -i nvidia0955:7330 が見えればOK。うまくいかなければ、分解してバッテリーのコネクタを抜き差ししてリセット(私の場合これがポイントだった。)。
  6. USBタイムアウト対策(TLP使用者のみ)
    sudo systemctl stop tlp
    echo -1 | sudo tee /sys/module/usbcore/parameters/autosuspend
  7. ペイロード送信
    cd ~/tegra30_debrick
    sudo python3 ./fusee-launcher/fusee-launcher.py ./payload/uart_payload_n7.bin
  8. BCTとブートローダー書き込み
    sudo ./utils/nvflash_v1.13.87205_miniloader_patched \
    --setbct --bct ./bct/nexus_7_grouper_bct.bin \
    --configfile ./utils/flash.cfg \
    --bl ./bootloader/bootloader-grouper-4.23.img --go
  9. EBTへの書き込みとBCTの同期
    sudo ./utils/nvflash_v1.13.87205_miniloader_patched \
    --resume \
    --download EBT bootloader/bootloader-grouper-4.23.img \
    --configfile ./utils/flash.cfg \
    --sync

    ※--syncがなかったので手間取った。
  10. Fastbootモード起動
    Googleロゴで止まったら電源長押しでオフ→音量ダウン+電源長押しでFastboot画面へ。(私の場合、Googleロゴで待機していたら元のOSが起動した。)
  11. Fastboot認識確認
    sudo fastboot devices でシリアル番号が出ればおけ

ここで Googleロゴが表示 → 元から入っていたLineageOSが起動

ポイント

  • --sync によって eMMC 書き込みキャッシュが確実に反映された
  • bricksafe.img や GPT の再書き込みは不要だった(eMMC自体は生きていた)
  • READMEでは明示されていなかったが、Issueで補足されていた手順が決定打

気づき

  • TWRPで「フォーマットデータ」するとパーティションテーブルまで壊れることがある
  • クソめんどくさいので二度とやらない。当たり前。
  • 詰まったらGitHubのIssue欄を読め。

まとめ

TWRPでストレージを消して文鎮化したNexus 7。
APXモードから、Linuxとtegra30_debrick、そしてGitHubの海外ニキたちの力で生き返った。
  • 公式README通りでは復旧できず、Googleロゴフリーズやfastboot認識不可に手間取る。
  • Issueで「--sync」やコマンド順序のミスに気づく。
  • 物理故障ではなくパーティション破損が原因。eMMC自体は無事(それはそう)
  • GitHubはすごい(小並感)
この記事が同じ境遇の方の助けになれば幸いです。お読みいただきありがとうございました。なお、記事の内容によって生じた損害に関して一切責任を負いません(断定)

関連記事:アプリ内広告などあらゆる広告を消す方法(AdGuard DNS)