[Moto G Q&A, Help & Troubleshooting] smartakki:
Hello everyone,

I had unlocked boot loader of my Moto G(XT 1033) a couple of years ago. I was using stock android(lollipop) on it. Now i was trying to install lineageos on it using twrp it was not able to install it it said md5 not found. so i tried to format the phone and now i am stuck on bootloader/ fastboot screen of my device and not able to open even twrp. so i tried to install twrp again using fastboot using my laptop but it shows the following error.

C:\Program Files (x86)\Minimal ADB and Fastboot>fastboot

usage: fastboot [ <option> ] <command>

commands:

update <filename> Reflash device from update.zip.

Sets the flashed slot as active.

flashall Flash boot, system, vendor, and --

if found -- recovery. If the device

supports slots, the slot that has

been flashed to is set as active.

Secondary images may be flashed to

an inactive slot.

flash <partition> [ <filename> ] Write a file to a flash partition.

flashing lock Locks the device. Prevents flashing.

flashing unlock Unlocks the device. Allows flashing

any partition except

bootloader-related partitions.

flashing lock_critical Prevents flashing bootloader-related

partitions.

flashing unlock_critical Enables flashing bootloader-related

partitions.

flashing get_unlock_ability Queries bootloader to see if the

device is unlocked.

flashing get_unlock_bootloader_nonce Queries the bootloader to get the

unlock nonce.

flashing unlock_bootloader <request> Issue unlock bootloader using request.

flashing lock_bootloader Locks the bootloader to prevent

bootloader version rollback.

erase <partition> Erase a flash partition.

format[:[<fs type>][:[<size>]] <partition>

Format a flash partition. Can

override the fs type and/or size

the bootloader reports.

getvar <variable> Display a bootloader variable.

set_active <slot> Sets the active slot. If slots are

not supported, this does nothing.

boot <kernel> [ <ramdisk> [ <second> ] ] Download and boot kernel.

flash:raw boot <kernel> [ <ramdisk> [ <second> ] ]

Create bootimage and flash it.

devices [-l] List all connected devices [with

device paths].

continue Continue with autoboot.

reboot [bootloader] Reboot device [into bootloader].

reboot-bootloader Reboot device into bootloader.

help Show this help message.

options:

-w Erase userdata and cache (and format

if supported by partition type).

-u Do not erase partition before

formatting.

-s <specific device> Specify a device. For USB, provide either

a serial number or path to device port.

For ethernet, provide an address in the

form <protocol>:<hostname>[:port] where

<protocol> is either tcp or udp.

-p <product> Specify product name.

-c <cmdline> Override kernel commandline.

-i <vendor id> Specify a custom USB vendor id.

-b, --base <base_addr> Specify a custom kernel base

address (default: 0x10000000).

--kernel-offset Specify a custom kernel offset.

(default: 0x00008000)

--ramdisk-offset Specify a custom ramdisk offset.

(default: 0x01000000)

--tags-offset Specify a custom tags offset.

(default: 0x00000100)

-n, --page-size <page size> Specify the nand page size

(default: 2048).

-S <size>[K|M|G] Automatically sparse files greater

than 'size'. 0 to disable.

--slot <slot> Specify slot name to be used if the

device supports slots. All operations

on partitions that support slots will

be done on the slot specified.

'all' can be given to refer to all slots.

'other' can be given to refer to a

non-current slot. If this flag is not

used, slotted partitions will default

to the current active slot.

-a, --set-active[=<slot>] Sets the active slot. If no slot is

provided, this will default to the value

given by --slot. If slots are not

supported, this sets the current slot

to be active. This will run after all

non-reboot commands.

--skip-secondary Will not flash secondary slots when

performing a flashall or update. This

will preserve data on other slots.

--unbuffered Do not buffer input or output.

--version Display version.

-h, --help show this message.

C:\Program Files (x86)\Minimal ADB and Fastboot>fastboot device

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

usage: fastboot [ <option> ] <command>

commands:

update <filename> Reflash device from update.zip.

Sets the flashed slot as active.

flashall Flash boot, system, vendor, and --

if found -- recovery. If the device

supports slots, the slot that has

been flashed to is set as active.

Secondary images may be flashed to

an inactive slot.

flash <partition> [ <filename> ] Write a file to a flash partition.

flashing lock Locks the device. Prevents flashing.

flashing unlock Unlocks the device. Allows flashing

any partition except

bootloader-related partitions.

flashing lock_critical Prevents flashing bootloader-related

partitions.

flashing unlock_critical Enables flashing bootloader-related

partitions.

flashing get_unlock_ability Queries bootloader to see if the

device is unlocked.

flashing get_unlock_bootloader_nonce Queries the bootloader to get the

unlock nonce.

flashing unlock_bootloader <request> Issue unlock bootloader using request.

flashing lock_bootloader Locks the bootloader to prevent

bootloader version rollback.

erase <partition> Erase a flash partition.

format[:[<fs type>][:[<size>]] <partition>

Format a flash partition. Can

override the fs type and/or size

the bootloader reports.

getvar <variable> Display a bootloader variable.

set_active <slot> Sets the active slot. If slots are

not supported, this does nothing.

boot <kernel> [ <ramdisk> [ <second> ] ] Download and boot kernel.

flash:raw boot <kernel> [ <ramdisk> [ <second> ] ]

Create bootimage and flash it.

devices [-l] List all connected devices [with

device paths].

continue Continue with autoboot.

reboot [bootloader] Reboot device [into bootloader].

reboot-bootloader Reboot device into bootloader.

help Show this help message.

options:

-w Erase userdata and cache (and format

if supported by partition type).

-u Do not erase partition before

formatting.

-s <specific device> Specify a device. For USB, provide either

a serial number or path to device port.

For ethernet, provide an address in the

form <protocol>:<hostname>[:port] where

<protocol> is either tcp or udp.

-p <product> Specify product name.

-c <cmdline> Override kernel commandline.

-i <vendor id> Specify a custom USB vendor id.

-b, --base <base_addr> Specify a custom kernel base

address (default: 0x10000000).

--kernel-offset Specify a custom kernel offset.

(default: 0x00008000)

--ramdisk-offset Specify a custom ramdisk offset.

(default: 0x01000000)

--tags-offset Specify a custom tags offset.

(default: 0x00000100)

-n, --page-size <page size> Specify the nand page size

(default: 2048).

-S <size>[K|M|G] Automatically sparse files greater

than 'size'. 0 to disable.

--slot <slot> Specify slot name to be used if the

device supports slots. All operations

on partitions that support slots will

be done on the slot specified.

'all' can be given to refer to all slots.

'other' can be given to refer to a

non-current slot. If this flag is not

used, slotted partitions will default

to the current active slot.

-a, --set-active[=<slot>] Sets the active slot. If no slot is

provided, this will default to the value

given by --slot. If slots are not

supported, this sets the current slot

to be active. This will run after all

non-reboot commands.

--skip-secondary Will not flash secondary slots when

performing a flashall or update. This

will preserve data on other slots.

--unbuffered Do not buffer input or output.

--version Display version.

-h, --help show this message.

C:\Program Files (x86)\Minimal ADB and Fastboot>fastboot devices

TA93305J1W fastboot

C:\Program Files (x86)\Minimal ADB and Fastboot>fastboot flash recovery.img

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

unknown partition 'recovery.img'

error: cannot determine image filename for 'recovery.img'

C:\Program Files (x86)\Minimal ADB and Fastboot>adb

Android Debug Bridge version 1.0.36

Revision 0e9850346394-android

-a - directs adb to listen on all interfaces for a connection

-d - directs command to the only connected USB device

returns an error if more than one USB device is present.

-e - directs command to the only running emulator.

returns an error if more than one emulator is running.

-s <specific device> - directs command to the device or emulator with the given

serial number or qualifier. Overrides ANDROID_SERIAL

environment variable.

-p <product name or path> - simple product name like 'sooner', or

a relative/absolute path to a product

out directory like 'out/target/product/sooner'.

If -p is not specified, the ANDROID_PRODUCT_OUT

environment variable is used, which must

be an absolute path.

-H - Name of adb server host (default: localhost)

-P - Port of adb server (default: 5037)

devices [-l] - list all connected devices

('-l' will also list device qualifiers)

connect <host>[:<port>] - connect to a device via TCP/IP

Port 5555 is used by default if no port number is specified.

disconnect [<host>[:<port>]] - disconnect from a TCP/IP device.

Port 5555 is used by default if no port number is specified.

Using this command with no additional arguments

will disconnect from all connected TCP/IP devices.

device commands:

adb push <local>... <remote>

- copy files/dirs to device

adb pull [-a] <remote>... <local>

- copy files/dirs from device

(-a preserves file timestamp and mode)

adb sync [ <directory> ] - copy host->device only if changed

(-l means list but don't copy)

adb shell [-e escape] [-n] [-Tt] [-x] [command]

- run remote shell command (interactive shell if no command given)

(-e: choose escape character, or "none"; default '~')

(-n: don't read from stdin)

(-T: disable PTY allocation)

(-t: force PTY allocation)

(-x: disable remote exit codes and stdout/stderr separation)

adb emu <command> - run emulator console command

adb logcat [ <filter-spec> ] - View device log

adb forward --list - list all forward socket connections.

the format is a list of lines with the following format:

<serial> " " <local> " " <remote> "\n"

adb forward <local> <remote> - forward socket connections

forward specs are one of:

tcp:<port>

localabstract:<unix domain socket name>

localreserved:<unix domain socket name>

localfilesystem:<unix domain socket name>

dev:<character device name>

jdwp:<process pid> (remote only)

adb forward --no-rebind <local> <remote>

- same as 'adb forward <local> <remote>' but fails

if <local> is already forwarded

adb forward --remove <local> - remove a specific forward socket connection

adb forward --remove-all - remove all forward socket connections

adb reverse --list - list all reverse socket connections from device

adb reverse <remote> <local> - reverse socket connections

reverse specs are one of:

tcp:<port>

localabstract:<unix domain socket name>

localreserved:<unix domain socket name>

localfilesystem:<unix domain socket name>

adb reverse --no-rebind <remote> <local>

- same as 'adb reverse <remote> <local>' but fails

if <remote> is already reversed.

adb reverse --remove <remote>

- remove a specific reversed socket connection

adb reverse --remove-all - remove all reversed socket connections from device

adb jdwp - list PIDs of processes hosting a JDWP transport

adb install [-lrtsdg] <file>

- push this package file to the device and install it

(-l: forward lock application)

(-r: replace existing application)

(-t: allow test packages)

(-s: install application on sdcard)

(-d: allow version code downgrade (debuggable packages only))

(-g: grant all runtime permissions)

adb install-multiple [-lrtsdpg] <file...>

- push this package file to the device and install it

(-l: forward lock application)

(-r: replace existing application)

(-t: allow test packages)

(-s: install application on sdcard)

(-d: allow version code downgrade (debuggable packages only))

(-p: partial application install)

(-g: grant all runtime permissions)

adb uninstall [-k] <package> - remove this app package from the device

('-k' means keep the data and cache directories)

adb bugreport [<path>] - return all information from the device that should be included in a zipped bug report.

If <path> is a file, the bug report will be saved as that file.

If <path> is a directory, the bug report will be saved in that directory with the name provided by the device.

If <path> is omitted, the bug report will be saved in the current directory with the name provided by the device.

NOTE: if the device does not support zipped bug reports, the bug report will be output on stdout.

adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [<packages...>]

- write an archive of the device's data to <file>.

If no -f option is supplied then the data is written

to "backup.ab" in the current directory.

(-apk|-noapk enable/disable backup of the .apks themselves

in the archive; the default is noapk.)

(-obb|-noobb enable/disable backup of any installed apk expansion

(aka .obb) files associated with each application; the default

is noobb.)

(-shared|-noshared enable/disable backup of the device's

shared storage / SD card contents; the default is noshared.)

(-all means to back up all installed applications)

(-system|-nosystem toggles whether -all automatically includes

system applications; the default is to include system apps)

(<packages...> is the list of applications to be backed up. If

the -all or -shared flags are passed, then the package

list is optional. Applications explicitly given on the

command line will be included even if -nosystem would

ordinarily cause them to be omitted.)

adb restore <file> - restore device contents from the <file> backup archive

adb disable-verity - disable dm-verity checking on USERDEBUG builds

adb enable-verity - re-enable dm-verity checking on USERDEBUG builds

adb keygen <file> - generate adb public/private key. The private key is stored in <file>,

and the public key is stored in <file>.pub. Any existing files

are overwritten.

adb help - show this help message

adb version - show version num

scripting:

adb wait-for[-<transport>]-<state>

- wait for device to be in the given state:

device, recovery, sideload, or bootloader

Transport is: usb, local or any [default=any]

adb start-server - ensure that there is a server running

adb kill-server - kill the server if it is running

adb get-state - prints: offline | bootloader | device

adb get-serialno - prints: <serial-number>

adb get-devpath - prints: <device-path>

adb remount - remounts the /system, /vendor (if present) and /oem (if present) partitions on the device read-write

adb reboot [bootloader|recovery]

- reboots the device, optionally into the bootloader or recovery program.

adb reboot sideload - reboots the device into the sideload mode in recovery program (adb root required).

adb reboot sideload-auto-reboot

- reboots into the sideload mode, then reboots automatically after the sideload regardless of the result.

adb sideload <file> - sideloads the given package

adb root - restarts the adbd daemon with root permissions

adb unroot - restarts the adbd daemon without root permissions

adb usb - restarts the adbd daemon listening on USB

adb tcpip <port> - restarts the adbd daemon listening on TCP on the specified port

networking:

adb ppp <tty> [parameters] - Run PPP over USB.

Note: you should not automatically start a PPP connection.

<tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1

[parameters] - Eg. defaultroute debug dump local notty usepeerdns

adb sync notes: adb sync [ <directory> ]

<localdir> can be interpreted in several ways:

- If <directory> is not specified, /system, /vendor (if present), /oem (if present) and /data partitions will be updated.

- If it is "system", "vendor", "oem" or "data", only the corresponding partition

is updated.

internal debugging:

adb reconnect Kick current connection from host side and make it reconnect.

adb reconnect device Kick current connection from device side and make it reconnect.

environment variables:

ADB_TRACE - Print debug information. A comma separated list of the following values

1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp

ANDROID_SERIAL - The serial number to connect to. -s takes priority over this if given.

ANDROID_LOG_TAGS - When used with the logcat option, only these debug tags are printed.

C:\Program Files (x86)\Minimal ADB and Fastboot>adb reboot bootloader

adb server version (39) doesn't match this client (36); killing...

* daemon started successfully *

error: no devices/emulators found

C:\Program Files (x86)\Minimal ADB and Fastboot>fastboot devices

TA93305J1W fastboot

C:\Program Files (x86)\Minimal ADB and Fastboot>fastboot flash update

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

unknown partition 'update'

error: cannot determine image filename for 'update'

C:\Program Files (x86)\Minimal ADB and Fastboot>fastboot flash recovery

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

error: neither -p product specified nor ANDROID_PRODUCT_OUT set

C:\Program Files (x86)\Minimal ADB and Fastboot>

basically i need to get back to my device. pls help(step by step tutorial).

any kind of help will be greatly appreciated.