What Is USB Debugging?

USB debugging is an option that can be selected on Android phones connected to a computer through a USB cable. According to VerizonWireless.com, this versatile command tool is intended for developers; however, tethering apps may require USB debugging to enable Internet communication between the smartphone and the computer. Other uses for USB debugging include accessing data between your computer and phone, installing new applications without being notified and reading log data.

Retailers Prepare For Launch Of Motorola's New Droid Phone
Enable USB debugging under "Menu/Settings/Applications/Development."
credit: George Frey/Getty Images News/Getty Images


Tethering applications, such as PdaNet, enable an Android phone to be used as a modem for computers and tablets attached through a USB connection. USB debugging has to be on while using such an application to allow for the high-speed transfer of data.

Accessing Data

After an Android smartphone attaches to a host through a USB connection, Windows' Device Manager checks to see if the phone can be accessed without disruption. If there is a problem communicating with the device or finding a driver, USB debugging can override any steps on either side that are preventing the connection. Once the devices are able to sync, the data can be accessed for copying, deleting and managing.

Installing New Applications

One feature and potential liability of USB debugging is the ability to synchronize and exchange data at high speeds between your phone and your computer. This link can allow applications to be installed without continually asking for permission; however, unwanted applications can also be installed on the phone without prior knowledge. USB debugging may allow access to usernames and passwords stored by the applications, as well as hardware information, logs and the list of installed applications.

Reading Log Data

Developers working on applications may need access to log data, such as finding out why a program has crashed, tracing the system memory history and identifying when a bug occurs in a program. Having access to these program variables can identify and test what an application does under different circumstances.