[Moto G5 Guides, News, & Discussion] jfarre20:
This guide will add LTE bands 2, 4, 12, 17, 23, 28, to Motorola G5 XT1676. Other variants may work as well, but are not tested.

Other bands are possible, you need to copy those specific RFNV files and PolicyMan files from a phone that supports those bands to your device.

Disclaimer: Unlocking LTE bands may be illegal in your area. Please check local laws before doing so.

I am not responsible for bricked/damaged devices/angry service providers/FCC violations/fried radios/etc. as a result of these modifications. Use at your own risk.

Software included may be subject to copyright.

I was able to unlock US LTE bands on my XT1676 by copying calibration data to the modem's NVRAM from my XT1671.

Here is how to do so:

1. Install QPST and QXDM Professional and drivers. Follow guide https://xdaforums.com/2015-moto-g/general/unlocking-bands-moto-g-2015-partially-t3283608 for driver install.

Google is your friend for finding QPST/QXDM. I used QPST Version 2.7 Build 460 and QXDM 03.12.714.

The driver I used was "Motorola QC Diag Port" - Version 5.1.0.0 (3/1/2013)

2. Install TWRP 64 bit

3. CRITICAL -- Backup your MODEM, MODEMST1 and MODEMST2 in TWRP.

If anything goes wrong, or if you want to revert - you need these backup files. I backed these files up using ADB inside TWRP.

dd if=/dev/block/bootdevice/by-name/modem of=/sdcard/backup/modem

dd if=/dev/block/bootdevice/by-name/modemst1 of=/sdcard/backup/modemst1

dd if=/dev/block/bootdevice/by-name/modemst2 of=/sdcard/backup/modemst2

4. Install an Oreo 64-bit rom and root your device

5. Boot device and enter diagnostic mode by entering the following commands into terminal or ADB over network.

su -c 'echo 0 > /sys/class/android_usb/android0/enable'

su -c 'echo 22B8 > /sys/class/android_usb/android0/idVendor'

su -c 'echo 2EC1 > /sys/class/android_usb/android0/idProduct'

su -c 'echo diag > /sys/class/android_usb/android0/f_diag/clients'

su -c 'echo diag > /sys/class/android_usb/android0/functions'

su -c 'echo 1 > /sys/class/android_usb/android0/enable'

6. Device will enter diag mode. Check that driver is installed in device manager. "Motorola QC Diag Port" under Ports (COM & LTP)

7. Open QXDM Professional, open NV browser. If dual sim device, check dual sim box and select sim slot you want to modify.

8. Adjust item 06828 to 17592185995263 in the input field and press write to upload the new value. This will unlock all LTE bands the device is calibrated for.

If your device already has calibration data for these bands, you may not need to perform the next steps. You can check your LTE bands using Network Signal Guru (Step 14)

To add calibration data:

9. Close QXDM, and Open QPST. go to Start Clients > EFS Explorer. Select your device from the window and use SPC code 000000

10. Navigate to EFS > NV > item_files > rfnv

11. Copy calibration data files (enablebands.zip) into RFNV. Do not overwrite if any already exist.

12. Return to EFS root, navigate to policyman.

13. Replace files device_config and rat_mask and rat_mask_Subscription01

These files are from an XT1671, and may limit or remove bands. You may need to find the device_config and rat_mask files from other Moto G5 variants if you want those bands.

14. Install netowrk signal guru (https://play.google.com/store/apps/details?id=com.qtrun.QuickTest&hl=en_US)

Enable desired LTE bands.

15. Reboot device, LTE should now work on those bands.

If you find your phone is screwed up, restore your backup of ModemST1 and ModemST2 using TWRP.

Restore by entering TWRP, connecting ADB and entering the following:

dd if=/sdcard/backup/modem of=/dev/block/bootdevice/by-name/modem

dd if=/sdcard/backup/modemst1 of=/dev/block/bootdevice/by-name/modemst1

dd if=/sdcard/backup/modemst2 of=/dev/block/bootdevice/by-name/modemst2

-------------------------------------------------------------------------------------------

The calibration data and policyman files from my XT1671 are attached as enablebands.zip

NV_Item spreadsheet is attached if anyone wants to identify LTE calibration data files from other G5 variants. This spreadsheet is not complete and is missing many files for some LTE bands, but it's all we have for now.

Also attached is SpecialCalibrationData.zip. The contents of these files differed across identical phones. I suspect each device gets its own calibration data at the factory for each band, and these files contain that data for certain bands. This could explain why the upstream signal is much weaker for band 4 on my patched XT1676 device than the XT1671 the calibration data was copied from. If anyone has any insight into these files, and how to fine-tune them to fix poor calibration issues - I'd love to hear it.

Good luck.