|
|
ADB(Android 调试桥)的授权本质是基于密钥对的认证:0 E" q) F) Y; v, m" b: F
当电脑首次通过 ADB 连接手机时,电脑会生成一对密钥(公钥adbkey.pub和私钥adbkey,通常存放在电脑的~/.android/目录)。7 P, W! b d6 N1 } A: @, N# g+ k
手机会弹出 “允许 USB 调试” 的弹窗,用户手动确认后,手机会将电脑的公钥adbkey.pub保存到自身的/data/misc/adb/adb_keys文件中。3 Y. K1 g0 |: n
后续该电脑再次连接时,手机会核对电脑的公钥与adb_keys中保存的是否一致,一致则直接授权,无需再弹窗确认(即 “可信设备” 自动授权)。
3 S6 J* S, h7 h( c+ F7 E# i1 [/ b6 ?
, P$ |( D; D, G) y
9 f$ {2 a; r/ O: G8 x
密钥认证流程
: B1 c% J. `* l1 Z) G首次连接: Y& O3 S E4 O+ W: S
电脑向手机发送自己的公钥 (adbkey.pub)。
3 Q) C2 B7 }* R1 ^. a" i6 S2 G手机弹出 “允许 USB 调试” 弹窗,显示电脑公钥的指纹(哈希值)。4 I+ `9 m" A( Q. q" p/ {: S
用户确认后,手机将该公钥保存到/data/misc/adb/adb_keys文件中。
, [8 r: f; h' L% |# u后续连接:
) T! D8 p0 t' r% [1 t/ h当同一台电脑再次连接时,手机会检查adb_keys中是否有匹配的公钥。
' k, \; Z4 m; {7 ~, b+ m如果有,则跳过弹窗,直接建立信任连接。
4 Q5 W1 i. f, A* }$ @! i多设备兼容性:
4 f7 a# p) Z2 ?0 w: m3 a- U电脑→手机:无论连接多少台不同的手机,电脑始终使用同一对公钥 / 私钥。- | T8 Y) B- J1 N. c
手机→电脑:每台手机会独立保存自己认可的可信电脑公钥(即每台手机的adb_keys文件可能不同)。" P! i/ }$ d5 f& f+ M& ? }
; g, [, i5 s2 J- ` |
|