Connect to Android via USB by adb in Windows.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Mon, 09 Oct 2017 10:14:37 +0300
changeset 2187 1eedb185a54d
parent 2186 b3653de0f03e
child 2188 e95731eef030
Connect to Android via USB by adb in Windows.
android.rst
--- a/android.rst	Sun Oct 08 00:19:47 2017 +0300
+++ b/android.rst	Mon Oct 09 10:14:37 2017 +0300
@@ -64,8 +64,8 @@
   https://www.clockworkmod.com/
     ClockworkMod
 
-Connect to Android via USB by adb.
-==================================
+Connect to Android via USB by adb in Linux
+==========================================
 
 Add ``udev`` rule for fix permission issues::
 
@@ -85,6 +85,83 @@
   http://developer.android.com/tools/device.html
     Setting up a Device for Development.
 
+Connect to Android via USB by adb in Windows
+============================================
+
+Get latest official Google drivers from:
+
+https://developer.android.com/studio/run/win-usb.html
+  Get the Google USB Driver.
+
+If your device isn't in official list you can try to find driver in `Windows
+update catalog at http://www.catalog.update.microsoft.com`__.
+
+__ http://www.catalog.update.microsoft.com
+
+Use search by vendor or device name, or string ``adb``. Alternatively use
+`hardware id`_.
+
+BTW older version of official Google drivers are also in `Windows update
+catalog`__.
+
+__ http://www.catalog.update.microsoft.com/Search.aspx?q=google+adb
+
+Most probably you will fail to find drivers for numerous Chinese/noname Android
+devices. We can reuse official Google drivers. To do that:
+
+.. _hardware id:
+
+* Find your USB's hardware VID and PID. Locate your device in *Device Manager*,
+  open Properties => Details => Hardware Ids and copy (by ``Ctrl+C``) string
+  like::
+
+    USB\VID_2A45&PID_201D&MI_01
+
+* Extract official Google's ADB driver package::
+
+    unzip latest_usb_driver_windows.zip
+
+* Locate and modify driver's ``.inf`` file (in my case it was
+  ``android_winusb.inf``) by adding lines, like::
+
+    ; Meizu
+    %SingleAdbInterface%        = USB_Install, USB\VID_2A45&PID_201D
+    %CompositeAdbInterface%     = USB_Install, USB\VID_2A45&PID_201D&MI_01
+
+  to all sections that has similar lines setting your own `hardware id`_
+  that we've extracted.
+
+* Temporary disable driver signing enforcement (run from Administrator, ``Win``,
+  type ``cmd``, ``Ctrl+Shift+Enter``)::
+
+    cmd# bcdedit /set testsigning off
+
+  and reboot. You'll see ``Test mode`` sign in right lower corner of desktop.
+
+* Locate your decive, then follow *Properties => Driver => Update => Browse my computer =>
+  Let me pick => Hard Disk...*. Select *Android Composite ADB interface* driver
+  and ignore security warning about broken file signature.
+
+* Enable signing checks back::
+
+    cmd# bcdedit /set testsigning on
+
+  and reboot. Hurrah!
+
+.. note::
+
+   As you see Google's adb driver works fine with any Android phone. It's
+   Microsoft policy to forbid class drivers so each vendor is required to
+   provide same driver with different hardware ID and to pay money for Windows
+   Logo® program and signing process.
+
+.. tip::
+
+   ``bcdedit`` can be run with alternative options::
+
+     cmd# bcdedit.exe /set nointegritychecks on
+     cmd# bcdedit.exe /set nointegritychecks off
+
 Recovery.
 =========