resumd/docs/SHIELD-ROOT-WALKTHROUGH.md

516 lines
10 KiB
Markdown
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
- 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.*