# 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 - Windows: https://developer.android.com/studio/releases/platform-tools - Extract somewhere and add to PATH 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: ```bash 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 ```bash adb reboot bootloader ``` Wait for Shield to show the bootloader screen (NVIDIA logo with text) ### Step 2.2: Verify Fastboot Connection ```bash fastboot devices ``` You should see: ``` 1323923031371 fastboot ``` ### Step 2.3: Unlock the Bootloader ```bash 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 ```bash adb reboot bootloader ``` ### Step 3.2: Flash TWRP Replace the path with where you downloaded TWRP: ```bash 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 ```bash 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: ```bash 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: ```bash adb devices ``` --- ## Part 6: Install Magisk (Two-Step Process) **⚠️ THIS IS THE CRITICAL PART - FOLLOW EXACTLY** ### Step 6.1: Push Magisk Files to Device ```bash # 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 ```bash adb install /path/to/Magisk-v28.0.apk ``` --- ## Part 7: Flash Magisk via TWRP (Step 1 of 2) ### Step 7.1: Reboot to Recovery ```bash adb reboot recovery ``` ### Step 7.2: Flash Magisk ZIP In TWRP terminal or via ADB: ```bash 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 ```bash 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: ```bash su ``` 4. Magisk will show a **Superuser Request** popup 5. Select **GRANT** 6. Your prompt should change to `#` (root) 7. Verify with: ```bash 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: ```bash fastboot oem continue ``` or ```bash 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.*