Complete OnePlus 7 Root Process: GM1901_11_h.40
Here's the comprehensive step-by-step guide for rooting your OnePlus 7 after updating to GM1901_11_h.40 firmware.
Pre-Requirements Checklist
Hardware/Software Ready:
- ✅ OnePlus 7 with unlocked bootloader
 - ✅ Arch Linux with ADB/Fastboot installed
 - ✅ USB Debugging enabled in Developer Options
 - ✅ Quality USB-C cable (avoid cheap cables that cause connection issues)
 
Downloads Needed:
- ✅ Magisk APK from GitHub[1]
 - ✅ Payload dumper tool installed[2]
 - ✅ GM1901_11_h.40 firmware (via Oxygen Updater)
 
Phase 1: Firmware Download & Backup
Step 1: Download H.40 Firmware
# On your phone, install Oxygen Updater from Play Store
# Download GM1901_11_h.40 firmware
# DO NOT install it yet - just download
Step 2: Transfer Firmware to Computer
# Connect phone to computer
adb devices
# Should show your device
# Find and copy firmware
adb pull /sdcard/OxygenUpdater/GM1901_11_h.40.zip ~/Downloads/
Step 3: Create Backup Directory
# Create organized workspace
mkdir ~/oneplus7_root
cd ~/oneplus7_root
cp ~/Downloads/GM1901_11_h.40.zip .
Phase 2: Extract Boot Image
Step 4: Extract Firmware
# Unzip firmware
unzip GM1901_11_h.40.zip
# You should see payload.bin and other files
ls -la
# Look for payload.bin (usually ~2GB file)
Step 5: Extract Boot Partition
# Extract only boot.img (faster than full extraction)
payload_dumper --partitions boot payload.bin
# This creates boot.img in current directory
ls -la boot.img
# Should show ~64MB file
Step 6: Verify Boot Image
# Check file type
file boot.img
# Should show: "Android bootimg"
# Get file hash for verification
sha256sum boot.img > boot_original.sha256
Phase 3: Install Firmware Update
Step 7: Update Phone to H.40
# Back up current important data first
adb backup -all -nosystem
# Now install the H.40 update via Oxygen Updater or Settings
# Let phone complete update and boot normally
# Test all functions work correctly
Step 8: Re-enable Developer Options
# After update, re-enable Developer Options
# Settings → About Phone → Build Number (tap 7 times)
# Settings → System → Developer Options → USB Debugging (ON)
# Verify ADB still works
adb devices
Phase 4: Install Magisk & Patch Boot
Step 9: Install Magisk Manager
# Transfer Magisk APK to phone
adb push Magisk-v29.0.apk /sdcard/
# Install on phone
adb shell pm install /sdcard/Magisk-v29.0.apk
Step 10: Transfer Boot Image for Patching
# Copy extracted boot.img to phone
adb push boot.img /sdcard/Download/boot.img
# Verify transfer
adb shell ls -la /sdcard/Download/boot.img
Step 11: Patch Boot Image with Magisk
On your phone:
- Open Magisk Manager app
 - Tap "Install" button next to Magisk section
 - Select "Select and Patch a File"
 - Navigate to /sdcard/Download/boot.img
 - Select the boot.img file
 - Tap "Let's Go" - Magisk will patch the image
 - Wait for completion - shows "All done!"
 
The patched file will be saved as: /sdcard/Download/magisk_patched-[random_string].img
Step 12: Transfer Patched Boot Back
# Pull the patched boot image
adb pull /sdcard/Download/magisk_patched-*.img
# Rename for clarity
mv magisk_patched-*.img magisk_patched_h40.img
# Verify the patched file
ls -la magisk_patched_h40.img
file magisk_patched_h40.img
Phase 5: Flash Patched Boot & Root
Step 13: Boot to Fastboot Mode
# Reboot phone to bootloader
adb reboot bootloader
# Verify fastboot connection
fastboot devices
# Should show your device serial number
# Check current slot
fastboot getvar current-slot
Step 14: Flash Patched Boot Image
# OnePlus 7 uses A/B partitions - flash both slots for safety
fastboot flash boot_a magisk_patched_h40.img
fastboot flash boot_b magisk_patched_h40.img
# Alternative: Flash only current slot
fastboot flash boot magisk_patched_h40.img
Step 15: Reboot and Verify
# Reboot phone
fastboot reboot
# Wait for phone to boot completely
# Should boot normally to OxygenOS
Phase 6: Root Verification & Setup
Step 16: Verify Root Access
# Check if root is working
adb shell su -c "id"
# Should return: uid=0(root) gid=0(root) groups=0(root)
# Check Magisk status
adb shell su -c "magisk -v"
# Should show Magisk version
Step 17: Configure Magisk
On your phone:
- Open Magisk Manager
 - Verify both sections show green checkmarks:
 - Magisk: Installed version
 - App: Installed version
 - Configure settings:
 - Enable "Zygisk" for better compatibility
 - Enable "Enforce DenyList" for banking apps
 - Add apps to DenyList that shouldn't detect root
 
Step 18: Install Root Management Apps
# Install useful root apps
# Examples: AdAway, Titanium Backup, Greenify, etc.
Phase 7: Security & Maintenance
Step 19: Hide Root from Detection
# Configure DenyList for sensitive apps:
# - Banking apps
# - Payment apps (Google Pay, PayPal)
# - Corporate apps
# - Games with anti-cheat
Step 20: Create Recovery Backup
# Keep these files safe for recovery:
cp boot.img boot_stock_h40.img          # Original boot
cp magisk_patched_h40.img magisk_boot_backup.img  # Working patched boot
cp boot_original.sha256 checksums.txt   # Verification hashes
Troubleshooting Common Issues
If Phone Won't Boot (Bootloop)
# Flash original boot image back
fastboot flash boot_a boot.img
fastboot flash boot_b boot.img
fastboot reboot
If Magisk Shows Red X
# Re-patch boot image with newer Magisk version
# Or try direct install mode in Magisk
If Apps Detect Root
# Enable more aggressive hiding:
# Magisk → Settings → Enable MagiskHide
# Add problematic apps to hide list
Banking Apps Not Working
# Configure DenyList properly:
# Magisk → Settings → Configure DenyList
# Add all banking/payment apps
# Enable "Enforce DenyList"
Post-Root Recommendations
Security Hardening:
- Install AdAway for system-wide ad blocking
 - Use AFWall+ for advanced firewall control
 - Install Privacy Guard for permission management
 
System Optimization:
- Greenify for background app management
 - SD Maid for system cleaning
 - Tasker for advanced automation
 
Backup Solutions:
- Titanium Backup for complete app/data backup
 - TWRP custom recovery (optional)
 
Maintenance Notes
Monthly Tasks:
- Update Magisk when new versions release[1]
 - Update Magisk modules
 - Verify root access still working
 - Check for OxygenOS updates (be cautious with major updates)
 
Before System Updates:
- Always uninstall Magisk first (restore stock boot)
 - Apply system update
 - Re-root with updated boot image
 
Your OnePlus 7 should now be fully rooted with Magisk on OxygenOS 12 H.40, providing you with complete system-level access while maintaining the ability to pass most safety checks for banking and other sensitive applications.
[1] https://github.com/topjohnwu/magisk/releases/ [2] https://github.com/vm03/payload_dumper