Я пытаюсь использовать ADB на самом устройстве Android, поэтому без какого-либо хост-компьютера. Это работало отлично пару дней назад, но оно внезапно прекратило работать. Насколько я знаю, с тех пор ничего не изменилось (например, никаких приложений (un) не установлено). Я мог бы использовать adb backup -f /sdcard/backup.ab <package-name> в эмуляторе терминала, и он начнет резервное копирование этого пакета. Когда я попробую это сейчас, он возвращает adb: unable to connect for backup. Расследование с помощью adb devices возвращает пустой список. Я никогда не потрудился проверять устройства ранее, я просто пошел прямо к команде adb, потому что все работало.
Это было на HTC Desire под управлением Android 4.4.2, ADB версии 1.0.31. Использование ADB с моего ПК с этим телефоном работает отлично, но это не то, что я хочу.
Что я пробовал
- Я попытался выполнить те же действия на разных устройствах (Asus PadFone 2 на 4.4.2, Samsung Galaxy Note GT-N7000 на 4.4.2, Sony Xperia S на 4.1.2.), но
adb devicesвозвращает пустой список на всех из них. Я начинаю удивляться, почему это сработало на моем HTC Desire в первую очередь. - Поиск Google и переполнение стека, но большинство (если не все) результатов относятся к проблеме с драйвером или к любой другой проблеме, связанной с главным компьютером.
-
adb kill-server+adb start-serverпримерно в сто раз, а такжеstop adbd+start adbd. - Включение и отключение "Отладки USB" в настройках, а также отмена доступа к ранее авторизованным компьютерам. (Однако в рабочей ситуации я никогда не получал приглашения на проверку ключей RSA.)
-
adb -a devices→ пустой список. -
adb usb→error: device not found. - Попытка перезапустить adb (d) в режиме TCP не увенчалась успехом (хотя это не было необходимо в рабочей ситуации).
adb tcpip 5555возвращаетerror: device not found. -
getpropне возвращает ни одной записи с именемservice.adb.tcp.portиsetprop service.adb.tcp.port 5555не работает. (Проверка после использованияgetprop service.adb.tcp.portничего не возвращает. Не нужно ли этому root?) -
adb connect localhostвозвращаетunable to connect to localhost:5555. - Когда демон запускается, он начинается с порта 5038 (при использовании ADB с моего ПК он начинается с 5037).
adb connect localhost:5038возвращаетconnected to localhost:5038. Однакоadb devicesпо-прежнему возвращает пустой список, аadb backupвозвращаетadb: unable to connect for backup. Кроме того,adb shellвозвращаетerror: device not foundиadb get-stateвозвращаетunknown. Таким образом, никакого успеха здесь тоже нет. - Поиск моего локального ip с помощью
getprop dhcp.wlan0.ipaddress(возвращает 192.168.1.xx), а затемadb connect 192.168.1.xxвозвращаетunable to connect to :5555.adb connect 192.168.1.xx:5038→unable to connect to :5038. ИспользованиеADBHOST=192.168.1.xx adb start-serverне влияет на эти результаты. - Один из немногих результатов поиска, который был фактически уместен, - это этот поток в AOSP Issue Tracker. Тем не менее, он описывает проблему, когда после использования
setprop service.adb.tcp.port 5555,adb devicesпо крайней мере показывает устройство, однако автономное (а именноlocalhost:5555 offline). Несколько ближе к концу потока достигается решение, которое включает в себя изменение каталога $HOME, чтобы изменить, где сохраняются ключи RSA, например.HOME=/sdcard. Затем необходимо добавить открытый ключ к /data/misc/adb/adb _keys, используяcat /sdcard/.android/adbkey.pub >> /data/misc/adb/adb_keys. Однако, я полагаю, это требует корней? Кроме того, все это не было необходимо в рабочей ситуации, поэтому я сомневаюсь, что решение моей проблемы должно быть найдено в этом направлении. В этой статье, полученной из потока в AOSP Issue Tracker, не говорится о добавлении открытого ключа. Однако упомянутый подход не увенчался успехом. -
netstatвозвращает (среди прочих):-
Proto: tcp -
Recv-Q: 0 -
Send-Q: 0 -
Local Address: 127.0.0.1:5038 -
Foreign Address: 0.0.0.0:* -
State: LISTEN
-
-
psпоказывает процесс/sbin/adbd, а также процессadb:- USER: shell PID: 92 PPID: 1 VSIZE: 3624 RSS: 264 WCHAN: ffffffff ПК: 00000000 S ИМЯ:/sbin/adbd
- USER: u0_a57 PID: 9754 PPID: 1 VSIZE: 3016 RSS: 988 WCHAN: ffffffff ПК: 4014f768 S ИМЯ: adb
- (Команды, выполняемые с терминала, выполняются как USER: u0_a57.)
Я думаю, что в значительной степени это.
Я ищу решение, в котором не нужен корень, поскольку он не нужен, когда я работал раньше. Надеюсь, моя ситуация и вопрос ясны. Пожалуйста, дайте мне знать, если мой вопрос нуждается в улучшении, так как это моя первая публикация на Stack Overflow. Надеюсь, кто-то может мне помочь. Заранее спасибо!