解決Hbuilder真機測試手機不彈框受權問題

手機:T708(OS: Android 4.3)android

手機開發者選項中USB調試已經打開,在電腦命令行下輸入adb devices,顯示手機未認證windows

D:\Program Files\HBuilder\tools\1.0.31>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
42f7f2230e4cafe7        unauthorizeddom

 

網上搜了一圈,幾經折騰,什麼adb kill-server/start-server、從新開關USB調試、撤回USB除錯受權,甚至坑爹的重刷手機系統都試過,也沒有搞定。ide

 

沒辦法,折騰adb源代碼去,看這裏ui

https://android.googlesource.com/platform/system/core/+/d5fcafaf41f8ec90986c813f75ec78402096af2dgoogle

源碼沒看到,先看到一大段英文,英文水平通常,直接搬原文:.net

 

adb: Add public key authentification

Secure adb using a public key authentication, to allow USB debugging
only from authorized hosts.

When a device is connected to an unauthorized host, the adb daemon sends
the user public key to the device. A popup is shown to ask the user to
allow debugging once or permanantly from the host. The public key is
installed on the device in the later case. Other keys may be installed
at build time.

On the host, the user public/private key pair is automatically generated,
if it does not exist, when the adb daemon starts and is stored in
$HOME/.android/adb_key(.pub) or in $ANDROID_SDK_HOME on windows. If needed,
the ADB_KEYS_PATH env variable may be set to a :-separated (; under
Windows) list of private keys, e.g. company-wide or vendor keys.

On the device, vendors public keys are installed at build time in
/adb_keys. User-installed keys are stored in /data/misc/adb/adb_keys.

ADB Protocol change:
If the device needs to authenticate the host, it replies to CNXN
packets with an AUTH packet. The AUTH packet payload is a random token.
The host signs the token with one of its private keys and sends an AUTH(0)
packet. If the signature verification succeeds, the device replies with
a CNXN packet. Otherwise, it sends a new AUTH packet with a new token so
that the host can retry with another private key. Once the host has tried
all its keys, it can send an AUTH(1) packet with a public key as
payload. adbd then sends the public key to the framework (if it has been
started) for confirmation.

 

 

在電腦的win7系統上查看ANDROID_SDK_HOME,命令行 echo %ANDRIOD_SDK_HOME%命令行

天啊,指向一個不存在的目錄,debug

 

將電腦環境變量中的ANDRIOD_SDK_HOME刪除,從新運行adb devices,手機上出現受權提示,問題解決。調試

D:\Program Files\HBuilder\tools\1.0.31>adb devices
List of devices attached
42f7f2230e4cafe7        device

 

 

相關文章
相關標籤/搜索