Skip to content

Releases: strubedo/twrp_device_google_shiba

TWRP 3.7.1 for Pixel 8 (shiba) — v9.51

Choose a tag to compare

@strubedo strubedo released this 18 Oct 15:23

TWRP 3.7.1 for Pixel 8 (shiba) — v9.51

TWRP keeps the CPU cooler during long jobs.

New

  • CPU temperature governor. Android slows the CPU down based on how warm the phone feels, through Google's thermal service - which doesn't run in recovery. In TWRP only the kernel's own limit (90 °C / 194 °F) applied, so long jobs like installing an OTA zip (about 17 minutes) ran the CPU at 91-93 °C (196-199 °F).
    • TWRP now watches the CPU temperature every 2 seconds. At 82 °C (180 °F) or more it lowers the top speed of the big and mid cores one step; at 75 °C (167 °F) or less it raises it again. A cool phone keeps full speed; the little cores are never touched, and the speed never drops below a floor that keeps TWRP responsive.
    • Tested with all 9 cores fully loaded: the CPU held at 172-178 °F, and went back to full speed about 20 seconds after the load stopped.
    • Each step is written to the kernel log (dmesg | grep twrp_thermal).

Everything from v9.50 is unchanged: Android 17 OTA zips install from TWRP, and Root after an OTA lets you pick what the updated slot gets.

Install

No root needed. From a PC: install_twrp.py with fastboot and your firmware's factory image (see the README, Option B). Then root from TWRP itself if you want (Advanced > ROOT).
Already rooted, or updating TWRP? Flash shiba-twrp-v9.51-flashable.zip from KernelSU, Magisk or TWRP.

Files

File Use
shiba-twrp-v9.51.zip PC installer (install_twrp.py) + TWRP Remote
shiba-twrp-v9.51-flashable.zip Flash from TWRP, KernelSU or Magisk
TWRP-Remote.exe TWRP Remote for Windows (added automatically a few minutes after release)

SHA-256:

357bd28c373ba4f667f7e70c8af6bab3e4803e05aef0cb1265ab89aef54fa4d0  shiba-twrp-v9.51.zip
9870eb8b9fa1b3581d159d0eafd179f003429bb65d1d824a4c48e34fa72a7239  shiba-twrp-v9.51-flashable.zip

TWRP 3.7.1 for Pixel 8 (shiba) — v9.50

Choose a tag to compare

@strubedo strubedo released this 18 Oct 13:35

TWRP 3.7.1 for Pixel 8 (shiba) — v9.50

Android 17 OTA zips install from TWRP now, and you choose what root the updated slot gets.

New

  • Install Android 17 OTA zips from TWRP. Until now an Android 17 OTA installed from any recovery couldn't boot: recovery always wrote uncompressed snapshots, and Android 17's boot code only reads compressed (VABC) ones - a kernel panic and a bootloop to fastboot. TWRP now writes the same compressed snapshots Android's own updater does (patched libsnapshot and update_engine).
    • Tested on the October 2026 build (CP3A.261005.005) in both directions - slot A to B and slot B to A: install, first boot, Android accepted the update, merge completed.
    • The v9.45 warning and the "install the same zip again within 5 minutes" step are gone. Install the full OTA zip once.
    • The safety guard stays: if an install didn't produce the snapshots Android 17 needs, TWRP keeps your current slot active.
    • After the install TWRP shows the fallback for this update: if the new slot doesn't boot, fastboot --set-active=<old slot> in the bootloader (works until Android starts merging the update on the new slot's first boot).
    • The first boot after the update takes a little longer: Android finishes the update and optimizes apps.
  • Root after an OTA (Install options and Settings) replaces the Reinstall root checkbox. Pick what the updated slot gets:
    • Off - Google's kernel, no root
    • Same as now - the root tool your current slot has
    • APatch (asks for the SuperKey right away, so the install doesn't stop to wait for you), KernelSU, KernelSU-Next, Magisk, SukiSU
    • Custom kernel - pick a kernel's boot .img (e.g. a GKI kernel with KernelSU-Next built in). TWRP checks it's a boot image, fits, and has the same KMI as the kernel it replaces, refuses two roots at once, backs up boot, writes it, reads it back and restores the backup on any mismatch.
    • Your choice is remembered. Picking a root tool installs it even when your current slot is rooted by a custom kernel.

Fixed

  • Option rows that show a value (like Root after an OTA: …) now update every time the screen opens.

Good to know

  • Each OTA installs Google's stock boot and init_boot to the updated slot. With Root after an OTA: Off, flash your custom kernel or root again after the update.
  • Not exercised yet on a real update: the Root after an OTA step itself (its checks were tested without writing). If it fails, the OTA still succeeds: the slot boots Google's kernel and TWRP tells you to root from Advanced > ROOT.

Install

No root needed. From a PC: install_twrp.py with fastboot and your firmware's factory image (see the README, Option B). Then root from TWRP itself if you want (Advanced > ROOT).
Already rooted, or updating TWRP? Flash shiba-twrp-v9.50-flashable.zip from KernelSU, Magisk or TWRP.

Files

File Use
shiba-twrp-v9.50.zip PC installer (install_twrp.py) + TWRP Remote
shiba-twrp-v9.50-flashable.zip Flash from TWRP, KernelSU or Magisk
TWRP-Remote.exe TWRP Remote for Windows (added automatically a few minutes after release)

SHA-256:

31a81970aa6f7f8df78f8d1a0c74f1db29e66dc5211e2c7e65106e12d2d866ad  shiba-twrp-v9.50.zip
35dc8677a2c8eaa37622147d9eb73b1ee45fe5640df75e20e069ddcd6c184ae9  shiba-twrp-v9.50-flashable.zip

TWRP 3.7.1 for Pixel 8 (shiba) — v9.49

Choose a tag to compare

@strubedo strubedo released this 17 Oct 17:33

TWRP 3.7.1 for Pixel 8 (shiba) — v9.49

A kernel chip on the main screen, a tidier root menu, and clearer root installs.

New

  • Kernel chip on the main screen, under the slot / data / root chips:
    • Kernel 6.1.162 · Stock for Google's kernel
    • the kernel's own name for custom kernels that carry one (e.g. · Wild), otherwise · Custom
    • · SUSFS added when the kernel has SUSFS
    • It reads the kernel in your slot's boot partition, so it changes as soon as you flash a kernel.
  • ROOT menu in alphabetical order: Show status, Install APatch, Install KernelSU, Install KernelSU-Next, Install Magisk, Install SukiSU, Remove root.
  • A line under each install says what it needs:
    • APatch, KernelSU-Next, SukiSU: Needs the … APK in /sdcard/Download (TWRP patches with the tools inside the app, so the root always matches your app version)
    • KernelSU, Magisk: App installs automatically

Fixed

  • Install KernelSU / KernelSU-Next / SukiSU right after changing kernels failed with "cannot derive KMI" (TWRP read the kernel it was started with, not the one now in boot). The KMI now comes from the slot's boot kernel.
  • Custom kernels whose name drops androidNN (e.g. 6.1.162-Wild) are supported: Linux 6.1 is android14-6.1.
  • Missing APK: instead of a one-line error, TWRP shows numbered steps with the official download link and the exact folder (/sdcard/Download, i.e. Internal storage > Download). Nothing is changed.
  • README: root is not required to install TWRP. Install from a PC with fastboot, then root from TWRP if you want.

Install

No root needed. From a PC: install_twrp.py with fastboot and your firmware's factory image (see the README, Option B). Then root from TWRP itself if you want (Advanced > ROOT).
Already rooted, or updating TWRP? Flash shiba-twrp-v9.49-flashable.zip from KernelSU, Magisk or TWRP.

Still true

  • Android 17: don't install OTA zips from TWRP. Update from Android (or the factory image without -w), then reinstall TWRP.

Files

File Use
shiba-twrp-v9.49.zip PC installer (install_twrp.py) + TWRP Remote
shiba-twrp-v9.49-flashable.zip Flash from TWRP, KernelSU or Magisk
TWRP-Remote.exe TWRP Remote for Windows (added automatically a few minutes after release)

SHA-256:

667160ba233b0962f87b05c1122936a67f43a0022d7354f163f864404c58c755  shiba-twrp-v9.49.zip
e9d31feb692ebfe471663b81da00f9954fdeb3beee77e28d679fe65376fc640f  shiba-twrp-v9.49-flashable.zip

TWRP 3.7.1 for Pixel 8 (shiba) — v9.48

Choose a tag to compare

@strubedo strubedo released this 14 Oct 22:28

TWRP 3.7.1 for Pixel 8 (shiba) — v9.48

APatch joins the root menu.

New

  • Install APatch (Advanced > ROOT). APatch roots the kernel itself (KernelPatch, in boot) instead of adding a module to init_boot, so it doesn't depend on the kernel's KMI.
    • Put the APatch APK in Download first. TWRP takes APatch's own tools (kptools, kpimg, apd) from it, so the root always matches your app version.
    • Choose a SuperKey on the TWRP page: 8 or more characters with letters AND numbers. Write it down: the APatch app doesn't ask for it or show it. TWRP needs it only to reinstall APatch after an update (it reads it back from your kernel).
    • TWRP checks the kernel first (CONFIG_KALLSYMS), backs up boot to Internal Storage (TWRP/boot_backups/), patches, verifies before and after flashing, and restores the backup if anything doesn't match.
    • TWRP also sets up AndroidPatch (apd) and installs the APatch app at the next boot, so APatch is fully working on first boot, with no extra step in the app.
    • The SuperKey goes from the TWRP page to the installer through a private temporary file and is deleted right after: it never appears in TWRP's logs or in Collect logs.
  • Remove root also removes APatch (unpatches the kernel in boot).
  • The root chip and Show status recognize APatch.
  • Reinstall root after an update reinstalls APatch with the same SuperKey.

Switching roots works in any direction: Remove root, then install the other one. Your modules and superuser grants stay (tested here: KernelSU-Next → APatch → KernelSU-Next, all 8 modules kept).

Still true

  • Android 17: don't install OTA zips from TWRP. Update from Android (or the factory image without -w), then reinstall TWRP.

Files

File Use
shiba-twrp-v9.48.zip PC installer (install_twrp.py) + TWRP Remote
shiba-twrp-v9.48-flashable.zip Flash from TWRP, KernelSU or Magisk
TWRP-Remote.exe TWRP Remote for Windows (added automatically a few minutes after release)

SHA-256:

ec9ca9033b9eb5967c1f1f066d445d0357fd3c5776de900f8286baf54e852b70  shiba-twrp-v9.48.zip
9e25279a910b182efcab4d755cea18eee93100cb7588d03aae8aab4dae40a0e3  shiba-twrp-v9.48-flashable.zip

TWRP 3.7.1 for Pixel 8 (shiba) — v9.47

Choose a tag to compare

@strubedo strubedo released this 12 Oct 18:05

TWRP 3.7.1 for Pixel 8 (shiba) — v9.47

More root choices, and fixes from v9.46 testing.

New

  • Install KernelSU-Next and Install SukiSU (Advanced > ROOT), next to KernelSU and Magisk. TWRP patches init_boot with the patcher (ksud) from that tool's own app, so the root always matches the app version you have. Put the app's APK in Download (or the top level of internal storage) first.
    • Switching roots works without losing anything: Remove root, then install the other one. Your modules and superuser grants stay.
    • TWRP also sets up the matching ksud in /data/adb and installs the app at the next boot if it's missing.
  • The root chip names your root: KernelSU, KSU-Next, SukiSU or Magisk, including root built into a custom kernel.
  • Show status now shows the details: which root is in init_boot, whether the kernel in boot has root built in (and SUSFS), and what Reinstall root would do after an OTA.
  • Reinstall root after an OTA reinstalls the same root you had (KernelSU-Next stays KernelSU-Next).
  • Remove root names what it removes and which app you can uninstall.

Fixed

  • MTP is on by default again. Some TWRP actions turn MTP off and back on internally, and that state was being saved, so MTP could stay off after the next boot and your PC couldn't browse the phone. TWRP now only saves your own choice (Mount > Enable/Disable MTP).
  • Root apps installed by TWRP show up on your home screen (installed as a user install, not a silent one). Some launchers have their own setting for this, for example Nova: Settings > Home screen > Add icon to home screen.

TWRP Remote (PC app)

  • Windows: download TWRP-Remote.exe from this release (no Python needed), put it in the twrp_remote folder of the PC zip, and run install_windows.bat.

Still true

  • Android 17: don't install OTA zips from TWRP. Update from Android (or the factory image without -w), then reinstall TWRP. TWRP warns you and keeps your slot active if you try anyway.

Files

File Use
shiba-twrp-v9.47.zip PC installer (install_twrp.py) + TWRP Remote
shiba-twrp-v9.47-flashable.zip Flash from TWRP, KernelSU or Magisk
TWRP-Remote.exe TWRP Remote for Windows (added automatically a few minutes after release)

SHA-256:

c76728bdb6b7e7a3b67b7c9ecaa5522d4cb37ce98a7ea98ef4d1582ffa98693d  shiba-twrp-v9.47.zip
f9c66a6a1119cfa1fb6123e83b117b4acc54d2b25d2926fa1e350e0cf3051e6c  shiba-twrp-v9.47-flashable.zip

v9.46 — battery, no PIN lag, custom-kernel root

Choose a tag to compare

@strubedo strubedo released this 12 Oct 15:14

TWRP 3.7.1 for Pixel 8 (shiba) — v9.46

Fixes from the first v9.45 reports.

Fixed

  • Battery level. TWRP always showed 100%+. It asked Android's health service, which doesn't run in recovery, and fell back to a fake "100%, charging". An upstream ordering bug in TWRP's build kept the battery path we set from ever being used. TWRP now reads the real level and charging state from the battery driver.

  • The pause after the PIN is gone. TWRP's persistent log (/data/recovery/log.gz) collected every session ever, and was decompressed and recompressed after each decryption: about 20 MB here, which froze the screen for about 4.5 s, a bit longer with every start. TWRP now keeps the newest 4 MB, and starts a fresh log when an old one is too big (the previous copy stays as last_log.gz). Decryption to home screen now takes about 0.3 s.

  • Root built into a custom kernel is recognized. Phones rooted by a custom kernel with KernelSU / KernelSU-Next built in (for example with SUSFS) showed as "not rooted", because TWRP only checked init_boot. TWRP now also checks the kernel in boot:

    • the root chip shows KernelSU;
    • Install root is blocked, so you can't add TWRP's KernelSU on top of your kernel's;
    • Remove root explains that this root lives in the kernel (flash the stock boot to remove it);
    • after an OTA, Reinstall root tells you to reflash your kernel instead of installing TWRP's KernelSU.

    ⚠ If you used v9.45's Install KernelSU on a phone with a KernelSU kernel, you now have two KernelSUs. Undo it in TWRP: Advanced > ROOT > Remove root (this restores the stock init_boot, and your kernel's root stays). Or flash your backup from TWRP/init_boot_backups/ to init_boot.

New in TWRP Remote (PC app)

  • USB debugging button: installs the Enable USB Debugging (every boot) module on the connected device, from TWRP (any recovery) or from rooted Android (KernelSU, KernelSU-Next, Magisk, APatch), then offers to authorize your PC so Android trusts it without a prompt. The module comes with the app.
  • The installers show the steps you need to do in yellow.

Still true (from v9.45)

  • Android 17: don't install OTA zips from TWRP. Update from Android (or the factory image without -w), then reinstall TWRP. TWRP warns you and keeps your slot active if you try anyway.

Files

File Use
shiba-twrp-v9.46.zip PC installer (install_twrp.py) + TWRP Remote
shiba-twrp-v9.46-flashable.zip Flash from TWRP, KernelSU or Magisk
enable-adb-v1.1.zip Enable USB Debugging (every boot): a module for any rooted Android device

SHA-256:

553d00a158d0547d1a5fb245779423b7fc976a53b516c96f158759aeb3c6e050  shiba-twrp-v9.46.zip
bbc319b6495ee1a417b4e4fc146cc10fb1bab17900f201137376c55909620202  shiba-twrp-v9.46-flashable.zip

v9.45 — Android 17

Choose a tag to compare

@strubedo strubedo released this 12 Oct 14:09

TWRP 3.7.1 for Pixel 8 (shiba) — v9.45

Android 17 support. Tested on the October 2026 build (CP3A.261005.005), from boot through decryption, KernelSU root and installs.

⚠ Read this first if you're on Android 17

Don't install an Android 17 OTA zip from TWRP, in any version. Android turns off compressed snapshots in recovery, and an update written that way can't boot on Android 17: you get a kernel panic and a bootloop to fastboot. v9.45 warns before such an install and keeps your current slot active afterwards. v9.44 does not, so don't use v9.44 for OTA zips on Android 17.

If you already did this and the phone bootloops into fastboot, your data is fine. Either:

  • switch back to the slot you were running: fastboot --set-active=<old slot>, then fastboot reboot; or
  • flash the factory image without -w: fastboot update image-shiba-<build>.zip, then reinstall TWRP.

Install order on Android 17

  1. Update Android first, the normal way: Settings > System update, or the factory image (fastboot update, without -w, so your data stays).
  2. Then install TWRP: python3 install_twrp.py (from shiba-twrp-v9.45.zip), or flash shiba-twrp-v9.45-flashable.zip from TWRP or the KernelSU / Magisk app.
  3. Root from TWRP: Advanced > ROOT.

For monthly updates, do the same: update from Android, then reinstall TWRP and root on the new slot.

What's new

  • Decryption works on Android 17. Android 17's Trusty KeyMint makes TWRP's keystore2 abort, which left the splash screen hanging. TWRP now detects this and switches to its built-in KeyMint/Gatekeeper/Weaver chain automatically.
  • Faster PIN screen. TWRP remembers which decryption chain worked for your vendor build and uses it directly next time, so it no longer waits for the failing one first. That saves about 4 seconds per start. It falls back on its own if it ever stops working.
  • OTA guard.
    • OTA zips for Android 17+ get a warning and need to be installed a second time within 5 minutes to go ahead.
    • After such an install, TWRP keeps the current slot active, so the phone can't boot into an update that won't start.
    • The old snapshot check now really runs: in v9.44 it looked at an unmounted /metadata.
  • init_boot backups on Internal Storage. Before TWRP patches init_boot for root, it now also copies the original to TWRP/init_boot_backups/ on Internal Storage, so you can reach it from a PC.
  • TWRP Remote (PC app):
    • everything is saved under ~/TWRP Remote/ (Screenshots and Logs folders), and existing screenshots are moved there once;
    • a new Open folder button;
    • the Windows installer offers the Google USB driver, warns about conflicting adb versions and downloads with curl.
  • The installer scripts show the steps you have to do in yellow.

Known issues

  • After you enter your PIN, the screen pauses about 4 seconds before the TWRP home screen. Decryption itself is done by then. This is being looked at for the next release.
  • After a factory flash or a finished update, only the slot you're running has Android, which is normal for Virtual A/B. TWRP is on both slots.

Files

File Use
shiba-twrp-v9.45.zip PC installer: install_twrp.py grafts TWRP onto your phone's own vendor_boot (any firmware)
shiba-twrp-v9.45-flashable.zip Flash from TWRP, KernelSU or Magisk

SHA-256:

7a8249ff132823d7fa7c4bde2b0d317a7d7a92d75f2ecbae413d597f5d1fe4f3  shiba-twrp-v9.45.zip
ecd6dabda6889b8a8378083384bac729a5b1be41ff838cf267c430cbd29ee188  shiba-twrp-v9.45-flashable.zip

Unofficial build. Unlocked bootloader required. Keep a backup.

TWRP v9.44 for Pixel 8 (shiba)

Choose a tag to compare

@strubedo strubedo released this 11 Oct 15:01

TWRP 3.7.1 for the Google Pixel 8 (shiba) - v9.44. Ready for the October 2026 update, and TWRP Remote now on Windows.

What's new

  • October 2026 firmware (CP3A.261005.005, Android 17) touchscreen support. The touch-driver fallback now includes Google's drivers from the October factory image (kernel 6.1.162), next to the earlier sets - 6 firmware sets in total.
  • TWRP Remote on Windows - tested on a real PC (Windows 11). build_windows.bat builds TWRP Remote.exe, install_windows.bat installs it with adb, scrcpy and a Start menu shortcut. New in the installer:
    • offers Google's USB driver when Windows binds the phone's ADB interface to a generic driver (symptom: adb devices is empty);
    • warns when several adb versions are installed - they keep killing each other's adb server (symptom: protocol fault ... connection reset, the remote keeps disconnecting) - and can pin TWRP Remote to the newest;
    • downloads with Windows' curl.exe and retries, so a flaky connection no longer skips adb/scrcpy.
  • README: Windows tips for both problems above.

Downloads

File Use it for SHA-256
shiba-twrp-v9.44-flashable.zip Rooted phones (KernelSU / Magisk app: Modules → Install) and updating TWRP (from TWRP: Install). One zip for every firmware. 461f8bd70f39f2e841777af63cd04115cb3eb1c12022327c2964c55cf6097149
shiba-twrp-v9.44.zip Installing from a PC (install_twrp.py), plus TWRP Remote 283b59d1021207182fecc942365192395f002f78f44d38f3fa5b8d75396d7650

Your phone must be rooted (KernelSU or Magisk) to install with the flashable zip. Both installers graft TWRP onto your phone's own vendor_boot, back up the original first, and verify every write. Read the README first: unlocked bootloader required; anti-rollback and encryption notes inside.

Updating from an earlier version: flash the new zip from TWRP (Install) - it updates both slots.

Updating your phone from April 2025 or older to May 2025 or newer firmware: read the README's Anti-rollback note first - the first such update must end with both slots carrying the new bootloader.

Status

Tested on Android 14 and 15 (v9.44 on a real Pixel 8: touch, decryption with PIN, TWRP Remote, install to both slots). Android 17 (October 2026) is checked offline - vendor HALs, encryption settings, kernel interface and touch drivers all match - but not yet on a real phone; that test is next. Testers on 16/17 are very welcome. The new Windows installer checks (USB driver, adb versions) haven't had their own run on Windows yet. When reporting a problem, attach the Collect logs archive (Advanced → TOOLS) and your build number.

Credits: TeamWin (TWRP), LeeGarChat (OrangeFox Pixel tree, decryption research, the Weaver daemon and the OTG method, used with permission), topjohnwu (Magisk), tiann and contributors (KernelSU), Genymobile (scrcpy), Google/AOSP. The fallback touchscreen drivers are Google's unmodified Pixel kernel modules (GPL-2.0; source: https://android.googlesource.com/kernel/google-modules/) - see THIRD_PARTY_NOTICES.md.

TWRP v9.43 for Pixel 8 (shiba)

Choose a tag to compare

@strubedo strubedo released this 03 Oct 19:38

TWRP 3.7.1 for the Google Pixel 8 (shiba) - v9.43. Comfort fixes for TWRP Remote and USB OTG.

What's new

  • Cooler phone with TWRP Remote. The phone-side screen streamer used to re-read the entire screen (about 10 MB of display memory) 20 times a second, even when nothing changed, keeping one CPU core at ~96% and heating the phone during long sessions. It now checks whether TWRP actually drew anything new (TWRP double-buffers, so an unchanged display buffer means an unchanged screen) and skips the read otherwise, with one safety capture per second. Measured on a still screen: ~96% → ~4% of a core. Taps and animations still stream at full speed.
  • USB OTG storage. After unplugging a drive that was the selected storage, TWRP switches back to Internal Storage by itself - no more "Unable to mount storage". Absent drives no longer appear in Select Storage with a stale size.

Downloads

File Use it for SHA-256
shiba-twrp-v9.43-flashable.zip Rooted phones (KernelSU / Magisk app: Modules → Install) and updating TWRP (from TWRP: Install). One zip for every firmware. 448b6155a9f19e8360cb3d12f43ac944489e626e5115caee793ad952fedf38d8
shiba-twrp-v9.43.zip Installing from a PC (install_twrp.py), plus TWRP Remote 0d63bf5c5a4632f8d54a6f443f12f598e457f12623335f10c9e2ff82d533b4f5

Your phone must be rooted (KernelSU or Magisk) to install with the flashable zip. Both installers graft TWRP onto your phone's own vendor_boot, back up the original first, and verify every write. Read the README first: unlocked bootloader required; anti-rollback and encryption notes inside.

Updating from an earlier version: flash the new zip from TWRP (Install) - it updates both slots.

Recent highlights, if you're coming from v9.40: USB OTG on Android 15+ (v9.42); decryption without /vendor, touchscreen without vendor_dlkm, and a clear message when a slot's firmware is too old for your keys (v9.41).

Status

Tested on Android 14 and 15. Android 16 and 17 are prepared and checked offline - testers on 16/17 are very welcome. When reporting a problem, attach the Collect logs archive (Advanced → TOOLS) and your build number.

Credits: TeamWin (TWRP), LeeGarChat (OrangeFox Pixel tree, decryption research, the Weaver daemon and the OTG method, used with permission), topjohnwu (Magisk), tiann and contributors (KernelSU), Google/AOSP. The fallback touchscreen drivers are Google's unmodified Pixel kernel modules (GPL-2.0; source: https://android.googlesource.com/kernel/google-modules/) - see THIRD_PARTY_NOTICES.md.

TWRP v9.42 for Pixel 8 (shiba)

Choose a tag to compare

@strubedo strubedo released this 03 Oct 18:59

TWRP 3.7.1 for the Google Pixel 8 (shiba) - v9.42. USB OTG fix for Android 15 and later.

What's new

  • USB OTG works on Android 15 and later. In recovery, the USB-C controller registers the port as sink-only (Android's USB HAL, which normally makes it dual-role, isn't running), so flash drives were never even detected. TWRP now switches the port to host mode itself when nothing is powering it: it forces the controller's OTG ID to host and supplies 5 V to the device, after LeeGarChat's method. Plug in a drive and it mounts at /usb-otg within a few seconds; unplug it, and TWRP returns to PC mode (adb/MTP). With nothing attached, TWRP checks for a drive periodically with a growing delay, to spare the battery.
  • More robust OTG kernel module. On kernel 6.1 (Android 15-17), otg_host_ready.ko now finds its target at runtime through a kprobe (after LeeGarChat's otg_host_shim), so it keeps loading even if a future firmware stops exporting the function. It also offers /proc/otg_host_ready to switch host mode on and off.

Tested on a real Pixel 8 (Android 15): drive detected, mounted, unmounted on removal, adb back when the PC is reconnected.

Downloads

File Use it for SHA-256
shiba-twrp-v9.42-flashable.zip Rooted phones (KernelSU / Magisk app: Modules → Install) and updating TWRP (from TWRP: Install). One zip for every firmware. ea635c44317e16edd140894448aa5036534d34c5dd5ccd17e6665ddcbb3fa12e
shiba-twrp-v9.42.zip Installing from a PC (install_twrp.py), plus TWRP Remote e81eb01b59a044456c924986e40d7b89c0fca5bcdb8a0bec77f569497c73434a

Your phone must be rooted (KernelSU or Magisk) to install with the flashable zip. Both installers graft TWRP onto your phone's own vendor_boot, back up the original first, and verify every write. Read the README first: unlocked bootloader required; anti-rollback and encryption notes inside.

Updating from v9.40 or v9.41: flash the new zip from TWRP (Install) - it updates both slots.

Also in v9.41 (if you're coming from v9.40): decryption without /vendor, touchscreen without vendor_dlkm, and a clear message when a slot's firmware is too old for your keys.

Status

Tested on Android 14 and 15. Android 16 and 17 are prepared and checked offline - testers on 16/17 are very welcome. When reporting a problem, attach the Collect logs archive (Advanced → TOOLS) and your build number.

Credits: TeamWin (TWRP), LeeGarChat (OrangeFox Pixel tree, decryption research, the Weaver daemon and the OTG method, used with permission), topjohnwu (Magisk), tiann and contributors (KernelSU), Google/AOSP. The fallback touchscreen drivers are Google's unmodified Pixel kernel modules (GPL-2.0; source: https://android.googlesource.com/kernel/google-modules/) - see THIRD_PARTY_NOTICES.md.