resumd/docs/SHIELD-ROOT-WALKTHROUGH.md

10 KiB
Executable file

NVIDIA Shield TV 2019 Pro: Complete Root Walkthrough

Stock Android → LineageOS + microG + Magisk Root

Device: NVIDIA Shield TV 2019 Pro (mdarcy/foster/t210ref) Tested: December 8, 2025 Time required: ~45 minutes


What You Need

Hardware

  • NVIDIA Shield TV 2019 Pro
  • USB-A to USB-A cable (Shield uses USB-A port)
  • PC (Windows, Mac, or Linux)
  • USB keyboard for Shield (for bootloader unlock confirmation)

Software (Download These First)

  1. ADB/Fastboot - Platform tools from Google

  2. LineageOS for microG (latest foster build)

    https://download.lineage.microg.org/foster/
    

    Download: lineage-22.1-2024XXXX-microG-foster.zip (latest date)

  3. TWRP Recovery

    https://dl.twrp.me/foster/
    

    Download: twrp-3.7.0_9-0-foster.img (or latest)

  4. Magisk v28.0 (this specific version works)

    https://github.com/topjohnwu/Magisk/releases/download/v28.0/Magisk-v28.0.apk
    

Part 1: Prepare the Shield

Step 1.1: Enable Developer Options

  1. On your Shield, go to:

    Settings > Device Preferences > About
    
  2. Scroll down to Build number

  3. Click it 7 times until you see "You are now a developer"

Step 1.2: Enable USB Debugging

  1. Go back to:

    Settings > Device Preferences > Developer options
    
  2. Enable USB debugging

  3. Enable OEM unlocking

Step 1.3: Connect to PC

  1. Connect Shield to PC with USB cable

  2. On Shield, you'll see "Allow USB debugging?" - check "Always allow" and click OK

  3. On PC, open terminal/command prompt and verify connection:

    adb devices
    

    You should see:

    List of devices attached
    1323923031371    device
    

    (Your serial number will be different)


Part 2: Unlock Bootloader

⚠️ WARNING: This erases ALL data on your Shield!

Step 2.1: Reboot to Bootloader

adb reboot bootloader

Wait for Shield to show the bootloader screen (NVIDIA logo with text)

Step 2.2: Verify Fastboot Connection

fastboot devices

You should see:

1323923031371    fastboot

Step 2.3: Unlock the Bootloader

fastboot oem unlock

Step 2.4: Confirm on Shield

  1. The Shield screen will show an unlock confirmation

  2. Use USB keyboard (or gamepad) to select YES

  3. Shield will factory reset and reboot (takes a few minutes)

Step 2.5: Skip Setup

  1. After reboot, go through minimal setup (skip accounts, etc.)

  2. Re-enable Developer options and USB debugging (repeat Steps 1.1 and 1.2)


Part 3: Flash TWRP Recovery

Step 3.1: Reboot to Bootloader

adb reboot bootloader

Step 3.2: Flash TWRP

Replace the path with where you downloaded TWRP:

fastboot flash recovery /path/to/twrp-3.7.0_9-0-foster.img

You should see:

Sending 'recovery' (31564 KB)                      OKAY
Writing 'recovery'                                 OKAY
Finished. Total time: X.XXXs

Step 3.3: Boot into TWRP

fastboot reboot recovery

Or use the bootloader menu: Volume keys to navigate to "Recovery", Power to select

TWRP should now load (blue/gray interface)


Part 4: Flash LineageOS

Step 4.1: Wipe Device in TWRP

  1. In TWRP, tap Wipe

  2. Tap Format Data

  3. Type yes and confirm (this wipes encryption)

  4. Go back, tap Advanced Wipe

  5. Check these boxes:

    • ☑ Dalvik / ART Cache
    • ☑ System
    • ☑ Cache
  6. Swipe to wipe

Step 4.2: Push LineageOS to Device

On your PC:

adb push /path/to/lineage-22.1-20241006-microG-foster.zip /sdcard/

Wait for transfer to complete (about 1-2 minutes)

Step 4.3: Install LineageOS

  1. In TWRP, tap Install

  2. Navigate to /sdcard/

  3. Tap the LineageOS zip file

  4. Swipe to confirm flash

  5. Wait for installation (2-3 minutes)

Step 4.4: Reboot to LineageOS

  1. Tap Reboot System

  2. If asked about installing TWRP app, tap Do Not Install

  3. First boot takes 5-10 minutes - the Shield will show LineageOS boot animation, be patient!


Part 5: Setup LineageOS

Step 5.1: Complete Setup Wizard

  1. Select language, WiFi, etc.

  2. Skip Google account (microG handles this later if needed)

  3. Complete the wizard

Step 5.2: Re-enable Developer Options

  1. Go to:

    Settings > About tablet
    
  2. Tap Build number 7 times

Step 5.3: Enable USB Debugging

  1. Go to:

    Settings > System > Developer options
    
  2. Enable USB debugging

  3. On PC, verify connection:

    adb devices
    

Part 6: Install Magisk (Two-Step Process)

⚠️ THIS IS THE CRITICAL PART - FOLLOW EXACTLY

Step 6.1: Push Magisk Files to Device

# Push the APK
adb push /path/to/Magisk-v28.0.apk /sdcard/Download/

# Create a copy as ZIP for TWRP
cp /path/to/Magisk-v28.0.apk /path/to/Magisk-v28.0.zip
adb push /path/to/Magisk-v28.0.zip /sdcard/Download/

Step 6.2: Install Magisk App

adb install /path/to/Magisk-v28.0.apk

Part 7: Flash Magisk via TWRP (Step 1 of 2)

Step 7.1: Reboot to Recovery

adb reboot recovery

Step 7.2: Flash Magisk ZIP

In TWRP terminal or via ADB:

adb shell "twrp install /sdcard/Download/Magisk-v28.0.zip"

Or manually in TWRP:

  1. Tap Install
  2. Navigate to /sdcard/Download/
  3. Select Magisk-v28.0.zip
  4. Swipe to flash

Step 7.3: IMPORTANT - Read the Output

You will see something like:

***********************
 Magisk 28.0 Installer
***********************
- Mounting /system
- Device is system-as-root
- Legacy SAR, force kernel to load rootfs
- System-as-root, keep dm-verity
- Target image: /dev/block/LNX
- Device platform: arm64-v8a
- Constructing environment
- Adding addon.d survival script
- Unpacking boot image
- Checking ramdisk status
- Stock boot image detected
- Patching ramdisk
- Repacking boot image
- Flashing new boot image
- Unable to find preinit dir    ← THIS WARNING IS NORMAL!
- Unmounting partitions
- Done

"Unable to find preinit dir" is EXPECTED. Do not panic. Continue to next step.

Step 7.4: Reboot to Android

adb shell reboot

Or in TWRP: Reboot > System


Part 8: Complete Magisk Install (Step 2 of 2)

THIS IS THE MAGIC STEP THAT MAKES IT WORK

Step 8.1: Wait for Boot

Wait for LineageOS to fully boot (1-2 minutes)

Step 8.2: Open Magisk App

  1. Open the Magisk app from your app drawer

  2. You will see a dialog:

    Requires Additional Setup
    
    Your device needs reflash Magisk to work properly.
    Please reinstall Magisk within app, recovery mode
    cannot get correct device info.
    
    [CANCEL]  [OK]
    
  3. Click OK

Step 8.3: Select Direct Install

  1. You're now on the Install screen

  2. You'll see two options:

    • Select and Patch a File
    • Direct Install (Recommended) ← SELECT THIS ONE
  3. Select Direct Install (Recommended)

  4. Click LET'S GO →

Step 8.4: Watch the Magic

You'll see:

- Target image: /dev/block/platform/sdhci-tegra.3/by-name/boot
- Device platform: arm64-v8a
- Installing: 28.0 (28000)
- Unpacking boot image
- Checking ramdisk status
- Magisk patched boot image detected
- Patching ramdisk
- Pre-init storage partition: mmcblk0p32    ← THIS IS THE KEY!
- Repacking boot image
- Flashing new boot image
- All done!

"Pre-init storage partition: mmcblk0p32" means it worked!

Step 8.5: Reboot

Click the Reboot button


Part 9: Verify Root

Step 9.1: Check Magisk Status

  1. After reboot, open Magisk app

  2. You should see:

    Magisk
    Installed    28.0 (28000)
    Zygisk       No
    Ramdisk      Yes
    
  3. No more "Requires Additional Setup" dialog!

Step 9.2: Test Root Access

  1. Install Termux from F-Droid or Aurora Store

  2. Open Termux

  3. Type:

    su
    
  4. Magisk will show a Superuser Request popup

  5. Select GRANT

  6. Your prompt should change to # (root)

  7. Verify with:

    id
    

    Should show:

    uid=0(root) gid=0(root) groups=0(root)...
    

🎉 DONE!

Your NVIDIA Shield TV 2019 Pro is now running:

  • LineageOS 22.x (Android 15 base)
  • microG (Google services replacement)
  • Magisk 28.0 (root access)

Troubleshooting

Bootloop after Part 7?

You need to complete Part 8. The TWRP install alone doesn't work - you MUST do Direct Install from the app.

To recover:

  1. Get into fastboot (hold A+B on gamepad while plugging in power)
  2. Reflash clean boot image
  3. Start again from Part 7

Magisk app "Select and Patch a File" crashes?

LineageOS doesn't have a proper document picker. This is why we use the two-step TWRP + Direct Install method instead.

fastboot reboot says "unknown reason"?

Use this instead:

fastboot oem continue

or

fastboot continue

Can't get into bootloader/fastboot?

Method 1: adb reboot bootloader

Method 2: Hold A+B buttons on gamepad while plugging in Shield power

Method 3: Use Android phone as USB HID keyboard (advanced)

"No command" in recovery?

You booted to stock recovery, not TWRP. Reflash TWRP per Part 3.


Why This Two-Step Process?

After 2 years of failed attempts, here's why this works:

  1. CLI magiskboot patching - Causes bootloop on Shield (unknown incompatibility)

  2. TWRP-only Magisk install - Can't find the preinit storage partition, so Magisk doesn't persist properly

  3. Magisk app Direct Install - Has Shield-specific detection code that correctly identifies mmcblk0p32 as preinit storage

The solution: Use TWRP to get Magisk partially installed (enough for the app to see "Magisk patched boot image detected"), then use the app to complete the installation properly.


Keep These Files

Save backups of:

  • Your clean boot.img (before any Magisk patching)
  • TWRP recovery image
  • Magisk v28.0 APK
  • LineageOS ZIP

Guide created after mass profanity and 2 years of bootloops. Now go enjoy your rooted Shield.