CSDN 編者按】隨著時間的推移,如今 Android 開發人員無需再通過 USB 驅動程序連接設備了,這具體是怎么做到的呢?
原文鏈接:https://fabiensanglard.net/android_windows_driver/index.html
未經允許,禁止轉載!
作者 | FABIEN SANGLARD 譯者 | 彎月
在 Android 平臺出現的早期,使用 Linux 和 Mac OS X 的 Android 開發人員只需要一根 USB 線就可以連接他們的設備,而 Windows 用戶則需要尋找并安裝驅動程序,非常繁瑣。當你將設備插入到 USB 端口時,操作系統需要加載其接口的驅動程序。為此,操作系統需要檢查 USB 描述符的層次結構。通常情況下,只需讀取設備描述符的廠商 ID(VID)和產品 ID(PID),就足以確定應加載哪些驅動程序。三大主流操作系統內置了“默認”的設備類驅動程序,因此大多數 USB 設備都能夠自動安裝。舉個例子,當連接 ErgoDox EZ 鍵盤時,Windows 會加載 hidusb.sys,而不需要用戶安裝驅動程序。如果 Windows 找不到內置的設備類驅動程序(或者有更好的匹配項),則會加載用戶安裝的驅動程序。例如,蘋果 Magic Trackpad 也會獲取 hidusb.sys,但如果安裝了 Bingxing Wang 的驅動程序,那么 Windows 就會加載 AmtPtpDeviceUm.dll(支持右鍵單擊和多指手勢)。如果找不到驅動程序,Linux 將加載 usbfs,這樣用戶空間程序也可以訪問設備。Mac OS 也是如此,只不過使用的是 IOKit;而 Windows 會報錯,即沒有加載驅動程序,就無法訪問 Android 設備。為了說明在安裝驅動程序時發生了什么,我們來看看 Google USB Driver 的“核心”文件:android_winusb.inf。INF 文件指示:“當 VID=0x18D1 且 PID=0x4E11(即Google Nexus One)時,加載 winusb 驅動程序”。WinUSB 是什么?類似于 Linux 的 usbfs 和 Mac OS 的 IOKit,它是一種 USB 驅動程序,允許用戶空間程序枚舉接口,并在端點之間進行讀/寫。這就是 adb(Android 調試橋)用來與 Android 設備通信的方式。為什么 Android 設備不再需要 Windows 驅動程序前面描述的方法有一個明顯的缺陷。如果 Android 設備的 VID/PID 未列出,winusb 將不會加載。Windows 8 有一種比 INF 文件更好的方法來確定接口需要哪個驅動程序。它可以直接詢問設備!當連接設備時,操作系統發出 String Descriptors 請求,索引為 0xEE。如果設備與微軟操作系統描述符(MOD)兼容,則返回字符串 M>當連接設備時,操作系統發出 String Descriptors 請求,索引為 0xEE。如果設備與微軟操作系統描述符(MOD)兼容,則返回字符串 M\0S\0F\0T\01\000\0\0。在這種情況下,Windows 會請求擴展兼容 ID OS 特征描述符。當連接設備時,操作系統發出 String Descriptors 請求,索引為 0xEE。如果設備與微軟操作系統描述符(MOD)兼容,則返回字符串 M\0S\0F\0T\01\000\0\0。在這種情況下,Windows 會請求擴展兼容 ID OS 特征描述符。當連接設備時,操作系統發出 String Descriptors 請求,索引為 0xEE。如果設備與微軟操作系統描述符(MOD)兼容,則返回字符串 M\0S\0F\0T\01\000\0\0。在這種情況下,Windows 會請求擴展兼容 ID OS 特征描述符。當連接設備時,操作系統發出 String Descriptors 請求,索引為 0xEE。如果設備與微軟操作系統描述符(MOD)兼容,則返回字符串 M\0S\0F\0T\01\000\0\0。在這種情況下,Windows 會請求擴展兼容 ID OS 特征描述符。<0>當連接設備時,操作系統發出 String Descriptors 請求,索引為 0xEE。如果設備與微軟操作系統描述符(MOD)兼容,則返回字符串 M\0S\0F\0T\01\000\0\0。在這種情況下,Windows 會請求擴展兼容 ID OS 特征描述符。<>當連接設備時,操作系統發出 String Descriptors 請求,索引為 0xEE。如果設備與微軟操作系統描述符(MOD)兼容,則返回字符串 M\0S\0F\0T\01\000\0\0。在這種情況下,Windows 會請求擴展兼容 ID OS 特征描述符。<。在這種情況下,Windows 會請求擴展兼容 ID OS 特征描述符。我們可以使用 Pixel 6 上的 libusb 的 xusb 檢查此描述符。該設備已設置為啟用媒體傳輸協議和開發者模式。此特征描述符會指示這兩個接口需要哪個驅動程序:第一個接口使用 mtp.sys,第二個接口使用 winusb.sys。加載 winusb.sys 后,用戶空間可執行文件(如 adb)就可以打開設備,聲明接口,然后開始開發工作。不再需要驅動程序!我看了看我收藏的 Pixel 系列設備,似乎微軟操作系統描述符支持始于 Pixel 2(2017年)和 Pixel 3a(2019年)之間(抱歉,我沒有 Pixel 3 可以測試)。Pixel 8 這類的新設備具有擴展屬性操作系統特征描述符,包含 GUID、幫助頁面、URL 甚至圖標。T之家 5 月 10 日消息,開發者 Gustave Monce 近日更新 DuoWoA 項目,為 Surface Duo 手機發布了 2305.25 驅動版本更新,讓這款雙屏手機更順暢地運行 Win11 系統。
本次驅動版本更新主要提高了 GPU 驅動和圖形堆棧的穩定性,改進了后臺性能,修復了亮度問題,從而帶來更優秀的使用體驗。
本次更新還恢復了用于文件傳輸的 USB MTP 協議,解決了顯示刷新率同步,修復了 Wi-Fi 連接問題等。
IT之家附新驅動完整更新日志如下:
新增功能!更新了一堆驅動程序,提高了穩定性、增強了部分功能。值得注意的是,更新 GPU 驅動程序和圖形堆棧,讓其運行更加穩定,修復了亮度問題,基于 OpenGL 的應用程序運行更順暢。
新增功能!開始重新優化 Camera 子系統。自本驅動版本開始,但目前啟用之后,尚未有明顯的變化。
新增功能!開始重新優化 Sensors 子系統。自本驅動版本開始,但目前啟用之后,尚未有明顯的變化。
新增功能!開始重新優化 Audio 子系統。自本驅動版本開始,但目前啟用之后,尚未有明顯的變化。
新增功能!開始重新優化 Battery 子系統。自本驅動版本開始,但目前啟用之后,尚未有明顯的變化。
新增功能!為電源按鈕添加了去抖動延遲,以防止連續意外快速喚醒顯示器。
新增功能!現在,您可以使用 USB MTP 再次將文件傳入和傳出設備。
新增功能!顯示屏縮放比例現在默認為 250%,以使您的眼睛舒適。
新增功能!在升級到 Windows Zinc Semester 內部版本 (ZN_RELEASE)之后,Phone Link 應用可以再次正常工作。
新增功能!Windows Zinc Semester 版本現在可以再次安裝。
新增功能!此更新解決了影響 WiFi 6 網絡上的 WiFi 連接和可靠性的一些問題。
新增功能!此更新解決了 Windows 11 Build 22000 及更低版本下的崩潰問題。
新增功能!音頻偵聽器的進一步增強 語音助手(如 Alexa 或 Cortana)的語音激活模型。
新增功能!此更新解決了兩個屏幕同時出現的顯示刷新率和同步問題。
新增功能!此更新解決了 Windows 核心操作系統支持的關鍵問題。
之前我們使用PE系統就講究個輕量、體積小、功能單一。但是隨著功能的需求逐漸增加,像什么沒系統的需要在PE下遠程協助安裝的、網卡用不了的、缺少想要的軟件的等等。我可以遇到過不少,放到之前PE只能是離線使用,連個網那是不可能!所以給一些電腦小白搞東西的時候就不太友好,這個怎么搞,那個怎么弄的,只能聽,不能看!
今天就為大家介紹一個非常好用的PE軟件系統,可能部分同學之前有接觸過,軟件名字叫HOTpe,聽這名字火熱的PE,哈哈!為啥給大家介紹這款吶,主要由于它功能太多了,想要的都有,而且還有遠程協助功能,還能裝驅動,還可以自定義添加內置的軟件模塊,最最主要的是它還是開源免費的,純凈免費的,你說氣人不!
HOTPE軟件分享下載:夸克網盤分享
上面只說了個大概,具體的功能有很多,可以自己裝上體驗體驗,個人感覺功能實在是強大,而且是WIN11的系統內核,簡直完美。大體的功能有下面這些:
一個純凈、強大、優雅的開源Win11PE,支持上網、聲音、遠程、下載、HotPE模塊、Edgeless插件、MTP、RNDIS、Legacy、UEFI、M.2、NVME、USB設備彈出、搜索功能、MSI、BitLocker解鎖、網絡共享、U盤和本地啟動、生成ISO等……
內置主流的無線網卡、有線網卡、聲卡驅動、磁盤驅動,擁有極高的兼容性。
怎么樣,看完覺得有沒有被驚訝道,這那是PE,這不活妥妥一個mini操作系統嘛!下面來欣賞下HOTPE的功能界面,流暢體驗下新時代PE強大的存在感!而且加載部分模塊的桌面,豐富的HotPE模塊包含上百款熱門軟件和工具,PE自帶模塊商店在線下載模塊,豐富模塊生態,可以說模塊是萬能的。
你以為上面就完了,它還支持切換主題,自定義壁紙。隨機壁紙、隨機風景壁紙(在線),必應每日壁紙(在線)。太氣人了!!!
還沒完,它竟然還支持MSI可以直接安裝運行庫,可以安裝顯卡驅動,還可以安裝運行庫,就可以在PE里玩游戲。這你能受的了嘛!簡直一個移動的微系統!!!
大概就挑選主要的介紹到這里,好玩的東西還很多,自己裝上體驗下才覺得炸裂!
HOTPE軟件分享下載:夸克網盤分享
歡迎關注、點贊