Android ADB:未经授权的设备尝试连接到端口转发的远程仿真器

时间:2019-11-20 05:28:21

标签: android android-emulator adb

背景: 我最近升级到AMD处理器,发现Android设备模拟器抱怨没有硬件加速。 (这是另一个问题的问题)。我的旧英特尔计算机运行良好,因此我决定在旧的英特尔PC(emu-pc)上运行模拟器,并使用新的AMD计算机(dev-pc)进行编码。

问题: 我无法直接让仿真器在emu-pc上公开其端口以通过dev-pc上的adb连接(同样是另一个问题),所以我安装了Windows 10 OpenSSH服务器({{3} }),并从我的dev-pc连接到它,转发适当的ADB端口:

ssh {you}@<{remote ip} -L 5554:localhost:5554 -L 5555:localhost:5555

然后我尝试通过adb连接到远程仿真器: adb connect localhost

我遇到了

$ ./adb devices
List of devices attached
localhost:5555  unauthorized

我已经尝试了几篇文章,指出您应该禁用并重新启用USB调试或撤消所有USB调试授权,或者使用AVD Manager中的“擦除数据”选项。这些都不起作用。我还尝试弄乱了/data/misc/adb/adbkeys下仿真器上的adbkeys,但我被拒绝尝试对该文件执行任何操作。 (我也无法通过lsadb shell

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我发现了一些对我有用的东西。我能够通过端口5554 telnet到emu-pc,尝试在Android控制台上进行身份验证。登录消息说:

Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'C:\Users\exile57\.emulator_console_auth_token'

我找到了该文件并能够登录。这使我认为模拟器认为连接来自emu-pc,而我使用的密钥是在dev-pc上生成的。我在C:\Users\[your user]\.android的emu-pc上找到了adbkeyadbkey.pub的键。我将它们复制到dev-pc,杀死了adb服务器,断开了所有设备的连接,然后尝试重新连接:

$ ./adb disconnect
./adb kill-server
./adb connect localhost

过了一会儿,我能够通过adb连接并驱动该设备:

$ ./adb devices
List of devices attached
localhost:5555  device

注意我不确定这是故事的全部,因为在测试此答案时,我删除了dev-pc的adbkey和adbkey,pub并且仍然能够重新连接,所以似乎有点奇怪。它对我有用,但是请注意,我不确定该机制。

答案 1 :(得分:0)

在Android Studio中,“运行”菜单>“运行”显示所连接设备的“离线...”。

以下是解决该问题的步骤:

  1. (首先阅读下面的注释)删除〜/ .android / adbkey(或者重命名为〜/ .android / adbkey2,如果出于某种原因希望将其恢复,则更好) 注意:在执行以下所有步骤后,我碰巧执行了此步骤,但是并不能解决问题,因此不确定是否需要执行此步骤。

  2. 运行locate platform-tools / adb 注意:请使用以下命令中来自此处的路径

  3. 杀死adb服务器: 须藤〜/ Android / Sdk / platform-tools / adb kill-server

  4. 您将在设备上弹出“允许接受..”消息。接受。这很重要,可以解决问题。

  5. 启动adb服务器: sudo〜/ Android / Sdk / platform-tools / adb启动服务器

  6. 在Android Studio中,执行“运行”菜单>“再次运行” 它将显示类似Samsung ...(您的手机制造商名称)的信息。 这次也可以在设备上正确无误地安装apk。

希望有帮助。