|
|
ADB(Android 调试桥)的授权本质是基于密钥对的认证:( X- z, l9 ^# p$ u# ], K P
当电脑首次通过 ADB 连接手机时,电脑会生成一对密钥(公钥adbkey.pub和私钥adbkey,通常存放在电脑的~/.android/目录)。) h j2 W) A5 u" Y* J' Q) P
手机会弹出 “允许 USB 调试” 的弹窗,用户手动确认后,手机会将电脑的公钥adbkey.pub保存到自身的/data/misc/adb/adb_keys文件中。
, ^2 x- m; }8 M后续该电脑再次连接时,手机会核对电脑的公钥与adb_keys中保存的是否一致,一致则直接授权,无需再弹窗确认(即 “可信设备” 自动授权)。
$ _6 ]7 N; t& T! V1 k3 S, U
; I0 X! K8 Y* C" T& R: x% k1 s
6 E" N' O6 a# N
! B9 Y% H* x, ]! H2 W密钥认证流程# h9 b! w6 O4 L( ~+ i5 Q' L
首次连接:
; z2 b6 p8 ^/ P; S1 ?9 Q4 K电脑向手机发送自己的公钥 (adbkey.pub)。
: u5 V: Z% W* c( g' f0 n手机弹出 “允许 USB 调试” 弹窗,显示电脑公钥的指纹(哈希值)。; A/ b8 c$ ]" c4 h$ Z
用户确认后,手机将该公钥保存到/data/misc/adb/adb_keys文件中。
8 y4 v7 s9 E7 \% P后续连接:
6 y" a% P4 `( q+ Q0 C- h1 K当同一台电脑再次连接时,手机会检查adb_keys中是否有匹配的公钥。
: [/ h" J4 I3 O5 D& m如果有,则跳过弹窗,直接建立信任连接。+ J- H1 e- i' t1 `2 y
多设备兼容性:
, t# E$ P2 t6 a9 H- D- A! c电脑→手机:无论连接多少台不同的手机,电脑始终使用同一对公钥 / 私钥。
0 G# w, n9 W2 b6 _$ W6 v$ ~% f2 o+ O" \手机→电脑:每台手机会独立保存自己认可的可信电脑公钥(即每台手机的adb_keys文件可能不同)。
7 U8 b! F/ U# ]/ B/ G% V7 ?; H7 ~" k2 \6 E
|
|