Nano Hash - криптовалюты, майнинг, программирование

Android ADB: неавторизованное устройство пытается подключиться к удаленному эмулятору с переадресацией портов

Общие сведения. Недавно я перешел на процессор AMD и обнаружил, что эмулятор устройства Android жаловался на отсутствие аппаратного ускорения. (Это тема для другого вопроса). Мой старый компьютер Intel работал нормально, поэтому я решил запустить эмулятор на старом ПК Intel (emu-pc) и использовать мой новый компьютер AMD (dev-pc) для кодирования.

Проблема: я не смог напрямую открыть эмулятору свои порты на emu-pc для подключения через adb на dev-pc (опять же проблема для другого вопроса), поэтому я установил Сервер Windows 10 OpenSSH (инструкции Microsoft) и подключен к нему с моего 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. Ни один из них не работал. Я также пытался возиться с adbkeys на эмуляторе под /data/misc/adb/adbkeys, но мне отказывают в разрешении, пытаясь что-либо сделать с этим файлом. (я тоже не могу ls через adb shell)

Любые идеи?


Ответы:


1

Я нашел то, что сработало для меня. Мне удалось подключиться к emu-pc через порт 5554, где я пытался авторизоваться на консоли 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. Я нашел ключи на emu-pc в C:\Users\[your user]\.android как adbkey и adbkey.pub. Я скопировал их на dev-pc, убил сервер adb, отключил все устройства, затем попытался переподключиться:

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

Через некоторое время я смог подключиться и погонять устройство по adb:

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

ПРИМЕЧАНИЕ Я не уверен, что это вся история, так как при тестировании этого ответа я удалил adbkey и adbkey,pub компьютера-разработчика и все же смог повторно подключиться, так что это кажется немного странно. Это сработало для меня, но имейте в виду, я не уверен в механизме.

20.11.2019

2

В студии Android меню «Выполнить»> «Выполнить» показывает OFFLINE... для подключенного устройства.

Ниже приведена процедура, используемая для ее решения:

  1. (Сначала прочтите примечание ниже) Удалите ~/.android/adbkey (или переименуйте в ~/.android/adbkey2, это даже лучше, если вы хотите вернуть его по какой-то причине) Примечание: я сделал этот шаг, но это не решило проблему, после выполнения всех приведенных ниже шагов это сработало, поэтому не уверен, требуется ли этот шаг.

  2. Запустите locate platform-tools/adb. Примечание: используйте путь, который идет отсюда, в командах ниже.

  3. Убить сервер adb: sudo ~/Android/Sdk/platform-tools/adb kill-server

  4. На вашем устройстве появится всплывающее окно с сообщением «Разрешить принять…». Принять это. Это важно, что решает проблему.

  5. Запустите сервер adb: sudo ~/Android/Sdk/platform-tools/adb start-server

  6. В студии Android выполните меню «Выполнить»> «Выполнить снова». Он покажет что-то вроде Samsung ... (название производителя вашего телефона). На этот раз также правильно устанавливает apk на устройство без ошибок.

Надеюсь, это поможет.

20.11.2019
  • Я пробовал эту процедуру, но никогда не получал сообщение Разрешить принятие... на удаленном эмуляторе... 20.11.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..