[Moto G Q&A, Help & Troubleshooting] matmutant:
Unlocking Bootloader

>>> Unlocking Bootloader will overwrite any data stored on your device, backup your files before proceeding <<<

For 4.4.2, an updated guide is available here

For

real

GPe devices (not ones with a GPe ROM added on it after the purchase), NO code is needed, simply skip to "3. Unlock"

1- Register to Motorola website

2- get your Device ID

Put your device in fastboot mode (power off, then press the power and volume down buttons simultaneously).

On your desktop, open a command prompt or terminal, and go to the directory where you installed the Android SDK tools (or make sure fastboot is in your $PATH)

At the prompt, type

$ fastboot oem get_unlock_data

The returned string will be used to retrieve your unlock key.

Example: On a Windows Desktop, the returned string format would be

$ fastboot oem get_unlock_data
(bootloader) 0A40040192024205#4C4D3556313230
(bootloader) 30373731363031303332323239#BD00
(bootloader) 8A672BA4746C2CE02328A2AC0C39F95
(bootloader) 1A3E5#1F53280002000000000000000
(bootloader) 0000000

On a Mac OS Desktop, the returned string format would be

INFO0A40040192024205#4C4D3556313230
INFO30373731363031303332323239#BD00
INFO8A672BA4746C2CE02328A2AC0C39F95
INFO1A3E5#1F53280002000000000000000
INFO0000000

Paste together the 5 lines of output into one continuous string without (bootloader) or ‘INFO’ or white spaces. Your string needs to look like this:

0A40040192024205#4C4D355631323030373731363031303332323239#BD008A672BA4746C2CE02328A2AC0C39F951A3E5#1F532800020000000000000000000000

3- Unlock

Check if your device can be unlocked by pasting this string in the pecific field on the Motorola website, and clicking “Can my device be unlocked?”

NOTE: If your device is unlockable, a "REQUEST UNLOCK KEY" button will now appear at the bottom of that page.

after you got the code type the following :

fastboot oem unlock <code>

or for GPe devices :

fastboot oem unlock

and wait your device to reboot !

4- Enjoy ;)

5- to relock, (pointless, isn't it?)

First you'll need a stock firmware for your specific device [make sure the device number is the right one at least...]

Then follow these steps:

Open the zip

Find 'flashfile.xml'

Make sure to check integrity of EACH img/bin files in the stock firmware zip before proceeding (to do that, look at the flashfile.xml)

e.g.:

<step MD5="daae9a555a3789558ee44f9e1fddc8c5" filename="gpt.bin" operation="flash" partition="partition"/>

check that gpt.bin MD5 is really daae9a555a3789558ee44f9e1fddc8c5 and has not been corrupted during download/unpacking

Prepare your device (boot to fastboot) and start relocking:

fastboot oem lock begin

Flash in the order:

mfastboot flash partition gpt.bin
mfastboot flash motoboot motoboot.img
mfastboot flash logo logo.bin
mfastboot flash boot boot.img
mfastboot flash recovery recovery.img
mfastboot.exe flash system system.img_sparsechunk.0 // note that you may have more or less sparsechunks, FLASH THEM ALL
mfastboot.exe flash system system.img_sparsechunk.1 // alternatively the files could be named system.img_sparsechunk[1-3] instead
mfastboot.exe flash system system.img_sparsechunk.2
mfastboot.exe flash system system.img_sparsechunk.3
mfastboot flash modem NON-HLOS.bin
mfastboot erase modemst1
mfastboot erase modemst2
mfastboot flash fsg fsg.mbn
mfastboot erase cache
mfastboot erase userdata

Finish relocking:

mfastboot oem lock

Done!