Android 如何通过 SSH 信任 adb

How to trust adb through SSH in Android

我有一个安装了 magisk 的 root 像素 3 设备连接到 mac。我想在远程连接时通过 mac 在设备上工作。有时,我需要重新启动 android 设备 - 当我这样做时,它有时会停止信任它所连接的 mac 计算机。

我已经 read about 禁用 dm-verity 始终信任计算机,但我想避免使用这些类型的解决方案 - 它们不安全、复杂,并且有损坏设备的风险。

相反,我调试了 android 设备 - 我发现每当我信任它所连接的 mac 时,都会生成两个文件:

/data/misc/adb/adb_keys
/data/misc/adb/adb_temp_keys.xml

两者都包含mac设备的publicadb密钥,可以在

中找到
~/.android/adbkey.pub

我尝试做的是通过 SSH, and when I lose trust I can push the files from the mac to the android by using scp:

连接到 android
scp -P2222 ~/.android/adbkey.pub user@ip:/sdcard/test
ssh ...
su # using magisk
cp /sdcard/test/adbkey.pub /data/misc/adb/adb_keys
cp /data/misc/adb/adb_keys /data/misc/adb/adb_keys.xml # with some format changes
reboot

我希望能让 android 设备信任 mac 设备,但是当我 运行 adb-devices 时,它仍然是未经授权的。

我也尝试在 android 上重新启动 adbd,希望它能重新查看文件以授权 mac,但这也没有用。

有谁知道我做错了什么,或者如何实现?

我在 mac 上授权了 phone 并勾选了持久性,将 /data/misc/adb 中的文件复制到一个 tmp 文件夹,然后当它未经授权时我可以通过 SSH 重新连接并将文件复制回来,然后在PC上重启adb服务器(adb kill-server,adb start-server)。