I studied the source code of adb
, debugged with gdb and finally found the root cause.
Basically, in order to respond to the host command adb shell
, adbd
(the daemon running on Android device) should open a pseudo terminal, and fork another child process for running shell. These are implemented in create_subproc_pty
function in system/core/adb/services.c
:
static int create_subproc_pty(const char *cmd, const char *arg0, const char *arg1, pid_t *pid)
{
....
int ptm;
ptm = unix_open("/dev/ptmx", O_RDWR | O_CLOEXEC); // | O_NOCTTY);
if(ptm < 0){
printf("[ cannot open /dev/ptmx - %s ]n",strerror(errno));
return -1;
}
....
*pid = fork();
if(*pid < 0) {
printf("- fork failed: %s -n", strerror(errno));
adb_close(ptm);
return -1;
}
....
}
And I found on my dev-board, the unix_open
function failed. That’s because PTY driver was not built into kernel, so the device /dev/ptmx
is not found on the system.
To solve this, just select Character Devices - Unix98 PTY
driver and rebuild kernel, then adb shell
will work.
Adb shell error closed что делать
Platform-tools: r33.0.3
ADB: 1.0.41 (33.0.3-8952118)
Fastboot: 33.0.3-8952118
Make_f2fs (casefold): 1.15.0 (2022-05-20)
Mke2fs: 1.46.2 (28-Feb-2021)
Последнее обновление утилит в шапке: 23.08.2022
ADB (Android Debug Bridge — Отладочный мост Android) — инструмент, который устанавливается вместе с Android-SDK и позволяет управлять устройством на базе ОС Android.
Работает на всех Android-устройствах, где данный функционал не был намеренно заблокирован производителем.
Здесь и далее: PC — ПК, компьютер к которому подключено устройство.
ADB — консольное приложение для PC, с помощью которого производится отладка Android устройств, в том числе и эмуляторов.
Работает по принципу клиент-сервер. При первом запуске ADB с любой командой создается сервер в виде системной службы (демона), которая будет прослушивать все команды, посылаемые на порт 5037.
Официальная страница
ADB позволяет:
- Посмотреть какие устройства подключены и могут работать с ADB.
- Просматривать логи.
- Копировать файлы с/на аппарат.
- Устанавливать/Удалять приложения.
- Удалять (очищать) раздел data.
- Прошивать (перезаписывать) раздел data.
- Осуществлять различные скрипты управления.
- Управлять некоторыми сетевыми параметрами.
Поставляется ADB в составе инструментария разработчика Андроид (Android SDK), который, в свою очередь входит в состав Android Studio.
Если что-то неправильно, то в списке подключенных устройств (List of devices attached) будет пусто.
Скрытые команды ADB
adb -d Команда посылается только на устройство подключенное через USB.
Внимание: Выдаст ошибку, если подключено больше одного устройства.
adb -e Команда посылается на устройство в эмуляторе.
Внимание: Выдаст ошибку, если подключено больше одного эмулятора.
adb -s Команда посылается на устройство с указанным серийным номером:
adb -p Команда посылается на устройство с указанным именем:
Если ключ -p не указан, используется значение переменной ANDROID_PRODUCT_OUT.
adb devices Список всех подсоединенных устройств.
adb connect [: ] Подсоединиться к андроид хосту по протококу TCP/IP через порт 5555 (по умолчанию, если не задан).
adb disconnect [ [: ]] Отсоединиться от андроид подключенного через TCP/IP порт 5555 (по умолчанию, если не задан).
Если не задан ни один параметр, отключиться от всех активных соединений.
adb push Копировать файл/папку PC->девайс.
adb pull [ ] Копировать файл/папку девайс->PC.
adb sync [ ] Копировать PC->девайс только новые файлы.
Ключи:
-l Не копировать, только создать список.
adb shell Запуск упрощенного unix shell.
Примеры использования
adb emu Послать команду в консоль эмулятора
adb install [-l] [-r] [-s] Послать приложение на устройство и установить его.
Пример: adb install c:/adb/app/autostarts.apk Установить файл autostarts.apk лежащий в папке /adb/app/ на диске с:
Ключи:
-l Блокировка приложения
-r Переустановить приложение, с сохранением данных
-s Установить приложение на карту памяти
Установка split apk
adb uninstall [-k] Удаление приложения с устройства.
Ключи:
-k Не удалять сохраненные данные приложения и пользователя.
adb wait-for-device Ждать подключения устройства.
adb start-server Запустить службу/демон.
adb kill-server Остановить службу/демон.
adb get-state Получить статус:
offline Выключен.
bootloader В режиме начальной загрузки.
device В режиме работы.
adb get-serialno Получить серийный номер.
adb status-window Непрерывный опрос состояния.
adb remount Перемонтировать для записи. Требуется для работы скриптов, которые изменяют данные на.
adb reboot bootloader Перезагрузка в режим bootloader.
adb reboot recovery Перезагрузка в режим recovery.
adb root Перезапуск демона с правами root
adb usb Перезапуск демона, прослушивающего USB.
adb tcpip Перезапуск демона, прослушивающего порт TCP.
adb ppp [параметры] Запуск службы через USB.
Note: you should not automatically start a PPP connection. refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
Параметры:
defaultroute debug dump local notty usepeerdns
FastBoot — консольное приложение для PC. Используется для действий над разделами
fastboot devices Список присоединенных устройств в режиме fastboot.
fastboot flash Прошивает файл .img в раздел устройства.
fastboot erase Стереть раздел.
Разделы: boot, recovery, system, userdata, radio
Пример: fastboot erase userdata Стирание пользовательских данных.
fastboot update Прошивка из файла имя_файла.zip
fastboot flashall Прошивка boot + recovery + system.
fastboot getvar Показать переменные bootloader.
Пример: fastboot getvar version-bootloader Получить версию bootloader.
fastboot boot [ ] Скачать и загрузить kernel.
fastboot flash:raw boot [ ] Создать bootimage и прошить его.
fastboot devices Показать список подключенных устройств.
fastboot continue Продолжить с автозагрузкой.
fastboot reboot Перезагрузить аппарат.
f astboot reboot-bootloader Перезагрузить девайсв режим bootloader.
Перед командами fastboot можно использовать ключи:
-w стереть данные пользователя и кэш
-s Указать серийный номер устройства.
-p
Указать название устройства.
-c Переопределить kernel commandline.
-i Указать вручную USB vendor id.
-b Указать в ручную базовый адрес kernel.
-n
Указать размер страниц nand. по умолчанию 2048.
Команду logcat можно использовать с машины разработки
$ adb logcat
или из удаленного shell
# logcat Каждое сообщение лога в Android имеет тэг и приоритет
Тэг – это строка указывающая компонент системы, от которого принято сообщение (например: View для системы view)
Приоритет – имеет одно из нижеследующих значений (в порядке от меньшего к большему):
V — Verbose (Низший приоритет).
D — Debug
I — Info
W — Warning
E — Error
F — Fatal
S — Silent (Наивысший приоритет, при котором ничего не выводится).
Получить список тэгов, используемых в системе, вместе с их приоритетами можно запустив logcat. В первых двух столбцах каждого из выведенных сообщений будут указаны / .
Пример выводимого logcat сообщения:
I/ActivityManager( 585): Starting activity: Intent
Для уменьшения вывода лога до приемлемого уровня нужно использовать выражения фильтра. Выражения фильтра позволяют указать системе нужные комбинации и , остальные сообщения система не выводит.
Выражения фильтра имеют следующий формат : . где указывает нужный тэг, указывает минимальный уровень приоритета для выбранного тэга. Сообщения с выбранным тэгом и приоритетом на уровне или выше указанного записываются в лог. Можно использовать любое количество пар : в одном выражении фильтра. Для разделения пар : используется пробел.
Пример ниже выводит в лог все сообщения с тэгом «ActivityManager» с приоритетом «Info» или выше, и сообщения с тэгом «MyApp» и приоритетом «Debug» или выше:
adb logcat ActivityManager:I MyApp:D *:S
Последний элемент в выражении фильтра *:S устанавливает приоритет «silent» для всех остальных тэгов, тем самым обеспечивая вывод сообщений только для «View» и «MyApp». Использование *:S – это отличный способ для вывода в лог только явно указанных фильтров (т.е. в выражении фильтра указывается «белый список» сообщений, а *:S отправляет все остальное в «черный список»).
При помощи следующего выражения фильтра отображаются все сообщения с приоритетом «warning» или выше для всех тэгов:
adb logcat *:W
Если logcat запускается на машине разработчика (не через удаленный adb shell), можно также установить значение выражения фильтра по умолчанию задав переменную окружения ANDROID_LOG_TAGS:
export ANDROID_LOG_TAGS=»ActivityManager:I MyApp:D *:S»
Следует обратить внимание что задав переменную окружения ANDROID_LOG_TAGS она не будет работать в эмуляторе/устройстве, если вы будете использовать logcat в удаленном shell или используя adb shell logcat.
Вышеописанная команда export работает в ОС *nix и не работает в Windows.
Контроль формата вывода лога
Сообщения лога в дополнение к тэгу и приоритету содержат несколько полей метаданных. Можно изменять формат вывода сообщений показывая только конкретные поля метаданных. Для этого используется параметр -v и указывается один из ниже перечисленных форматов вывода.
brief Показывать приоритет/тэг и PID процесса (формат по умолчанию).
process Показывать только PID.
tag Показывать только приоритет/тэг.
thread Показывать только процесс:поток и приоритет/тэг.
raw Показать необработанное сообщение, без полей метаданных.
time Показывать дату, время вызова, приоритет/тэг и PID процесса.
long Показывать все поля метаданных и отдельно сообщения с пустыми строками.
При запуске logcat можно указать формат вывода используя параметр -v:
adb logcat [-v
Источник
Adb shell error closed что делать
Platform-tools: r33.0.3
ADB: 1.0.41 (33.0.3-8952118)
Fastboot: 33.0.3-8952118
Make_f2fs (casefold): 1.15.0 (2022-05-20)
Mke2fs: 1.46.2 (28-Feb-2021)
Последнее обновление утилит в шапке: 23.08.2022
ADB (Android Debug Bridge — Отладочный мост Android) — инструмент, который устанавливается вместе с Android-SDK и позволяет управлять устройством на базе ОС Android.
Работает на всех Android-устройствах, где данный функционал не был намеренно заблокирован производителем.
Здесь и далее: PC — ПК, компьютер к которому подключено устройство.
ADB — консольное приложение для PC, с помощью которого производится отладка Android устройств, в том числе и эмуляторов.
Работает по принципу клиент-сервер. При первом запуске ADB с любой командой создается сервер в виде системной службы (демона), которая будет прослушивать все команды, посылаемые на порт 5037.
Официальная страница
ADB позволяет:
- Посмотреть какие устройства подключены и могут работать с ADB.
- Просматривать логи.
- Копировать файлы с/на аппарат.
- Устанавливать/Удалять приложения.
- Удалять (очищать) раздел data.
- Прошивать (перезаписывать) раздел data.
- Осуществлять различные скрипты управления.
- Управлять некоторыми сетевыми параметрами.
Поставляется ADB в составе инструментария разработчика Андроид (Android SDK), который, в свою очередь входит в состав Android Studio.
Если что-то неправильно, то в списке подключенных устройств (List of devices attached) будет пусто.
Скрытые команды ADB
adb -d Команда посылается только на устройство подключенное через USB.
Внимание: Выдаст ошибку, если подключено больше одного устройства.
adb -e Команда посылается на устройство в эмуляторе.
Внимание: Выдаст ошибку, если подключено больше одного эмулятора.
adb -s Команда посылается на устройство с указанным серийным номером:
adb -p Команда посылается на устройство с указанным именем:
Если ключ -p не указан, используется значение переменной ANDROID_PRODUCT_OUT.
adb devices Список всех подсоединенных устройств.
adb connect [: ] Подсоединиться к андроид хосту по протококу TCP/IP через порт 5555 (по умолчанию, если не задан).
adb disconnect [ [: ]] Отсоединиться от андроид подключенного через TCP/IP порт 5555 (по умолчанию, если не задан).
Если не задан ни один параметр, отключиться от всех активных соединений.
adb push Копировать файл/папку PC->девайс.
adb pull [ ] Копировать файл/папку девайс->PC.
adb sync [ ] Копировать PC->девайс только новые файлы.
Ключи:
-l Не копировать, только создать список.
adb shell Запуск упрощенного unix shell.
Примеры использования
adb emu Послать команду в консоль эмулятора
adb install [-l] [-r] [-s] Послать приложение на устройство и установить его.
Пример: adb install c:/adb/app/autostarts.apk Установить файл autostarts.apk лежащий в папке /adb/app/ на диске с:
Ключи:
-l Блокировка приложения
-r Переустановить приложение, с сохранением данных
-s Установить приложение на карту памяти
Установка split apk
adb uninstall [-k] Удаление приложения с устройства.
Ключи:
-k Не удалять сохраненные данные приложения и пользователя.
adb wait-for-device Ждать подключения устройства.
adb start-server Запустить службу/демон.
adb kill-server Остановить службу/демон.
adb get-state Получить статус:
offline Выключен.
bootloader В режиме начальной загрузки.
device В режиме работы.
adb get-serialno Получить серийный номер.
adb status-window Непрерывный опрос состояния.
adb remount Перемонтировать для записи. Требуется для работы скриптов, которые изменяют данные на.
adb reboot bootloader Перезагрузка в режим bootloader.
adb reboot recovery Перезагрузка в режим recovery.
adb root Перезапуск демона с правами root
adb usb Перезапуск демона, прослушивающего USB.
adb tcpip Перезапуск демона, прослушивающего порт TCP.
adb ppp [параметры] Запуск службы через USB.
Note: you should not automatically start a PPP connection. refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
Параметры:
defaultroute debug dump local notty usepeerdns
FastBoot — консольное приложение для PC. Используется для действий над разделами
fastboot devices Список присоединенных устройств в режиме fastboot.
fastboot flash Прошивает файл .img в раздел устройства.
fastboot erase Стереть раздел.
Разделы: boot, recovery, system, userdata, radio
Пример: fastboot erase userdata Стирание пользовательских данных.
fastboot update Прошивка из файла имя_файла.zip
fastboot flashall Прошивка boot + recovery + system.
fastboot getvar Показать переменные bootloader.
Пример: fastboot getvar version-bootloader Получить версию bootloader.
fastboot boot [ ] Скачать и загрузить kernel.
fastboot flash:raw boot [ ] Создать bootimage и прошить его.
fastboot devices Показать список подключенных устройств.
fastboot continue Продолжить с автозагрузкой.
fastboot reboot Перезагрузить аппарат.
f astboot reboot-bootloader Перезагрузить девайсв режим bootloader.
Перед командами fastboot можно использовать ключи:
-w стереть данные пользователя и кэш
-s Указать серийный номер устройства.
-p
Указать название устройства.
-c Переопределить kernel commandline.
-i Указать вручную USB vendor id.
-b Указать в ручную базовый адрес kernel.
-n
Указать размер страниц nand. по умолчанию 2048.
Команду logcat можно использовать с машины разработки
$ adb logcat
или из удаленного shell
# logcat Каждое сообщение лога в Android имеет тэг и приоритет
Тэг – это строка указывающая компонент системы, от которого принято сообщение (например: View для системы view)
Приоритет – имеет одно из нижеследующих значений (в порядке от меньшего к большему):
V — Verbose (Низший приоритет).
D — Debug
I — Info
W — Warning
E — Error
F — Fatal
S — Silent (Наивысший приоритет, при котором ничего не выводится).
Получить список тэгов, используемых в системе, вместе с их приоритетами можно запустив logcat. В первых двух столбцах каждого из выведенных сообщений будут указаны / .
Пример выводимого logcat сообщения:
I/ActivityManager( 585): Starting activity: Intent
Для уменьшения вывода лога до приемлемого уровня нужно использовать выражения фильтра. Выражения фильтра позволяют указать системе нужные комбинации и , остальные сообщения система не выводит.
Выражения фильтра имеют следующий формат : . где указывает нужный тэг, указывает минимальный уровень приоритета для выбранного тэга. Сообщения с выбранным тэгом и приоритетом на уровне или выше указанного записываются в лог. Можно использовать любое количество пар : в одном выражении фильтра. Для разделения пар : используется пробел.
Пример ниже выводит в лог все сообщения с тэгом «ActivityManager» с приоритетом «Info» или выше, и сообщения с тэгом «MyApp» и приоритетом «Debug» или выше:
adb logcat ActivityManager:I MyApp:D *:S
Последний элемент в выражении фильтра *:S устанавливает приоритет «silent» для всех остальных тэгов, тем самым обеспечивая вывод сообщений только для «View» и «MyApp». Использование *:S – это отличный способ для вывода в лог только явно указанных фильтров (т.е. в выражении фильтра указывается «белый список» сообщений, а *:S отправляет все остальное в «черный список»).
При помощи следующего выражения фильтра отображаются все сообщения с приоритетом «warning» или выше для всех тэгов:
adb logcat *:W
Если logcat запускается на машине разработчика (не через удаленный adb shell), можно также установить значение выражения фильтра по умолчанию задав переменную окружения ANDROID_LOG_TAGS:
export ANDROID_LOG_TAGS=»ActivityManager:I MyApp:D *:S»
Следует обратить внимание что задав переменную окружения ANDROID_LOG_TAGS она не будет работать в эмуляторе/устройстве, если вы будете использовать logcat в удаленном shell или используя adb shell logcat.
Вышеописанная команда export работает в ОС *nix и не работает в Windows.
Контроль формата вывода лога
Сообщения лога в дополнение к тэгу и приоритету содержат несколько полей метаданных. Можно изменять формат вывода сообщений показывая только конкретные поля метаданных. Для этого используется параметр -v и указывается один из ниже перечисленных форматов вывода.
brief Показывать приоритет/тэг и PID процесса (формат по умолчанию).
process Показывать только PID.
tag Показывать только приоритет/тэг.
thread Показывать только процесс:поток и приоритет/тэг.
raw Показать необработанное сообщение, без полей метаданных.
time Показывать дату, время вызова, приоритет/тэг и PID процесса.
long Показывать все поля метаданных и отдельно сообщения с пустыми строками.
При запуске logcat можно указать формат вывода используя параметр -v:
adb logcat [-v
Источник
- Forum
- LG Android Phones
- More LG Phones
- LG Optimus Series
- LG Optimus S
-
Got a problems while trying to root my LG Optimus S.
Using this tutorial http://forum.androidcentral.com/lg-o…works-too.html
When I put in «adb shell» I get an «error: closed»
What does it mean?
Help me out.I just got my phone replaced by Sprint and it got the new LS670ZVD version of a software on it. I need to tether the internet ASAP.
05-17-2011 03:38 AM
-
Maybe try restarting the server? Run the command ‘adb kill-server’ then ‘adb start-server’
Another option is to restart the phone and see if that helps too.
05-18-2011 07:49 PM
-
I had the same problem today. Tried restarting the server, and messing around with settings. Finally worked after I restarted my PC.
05-18-2011 09:43 PM
-
Restarted Computer and it did not work
Restarted the phone after a computer restart and it worked.Now I have successfully rooted LG Optimus S.
Thanks guys.BTW itsjareds. I believe the commands are «adb killserver» and «adb startserver», no space or line between the words.
05-19-2011 09:03 PM
-
Congrats, I just got my Optimus rooted today also.
05-19-2011 09:54 PM
-
yeah, I had mine for a while with a previous version of software and was using wireless tether widget with no issues, than all of the sudden my speaker and mic stop working, so I take it to Spring and they give me new phone with new software on it.
But it’s all good now since I was able to root it.
05-20-2011 06:11 PM
-
I have killed the adb server, and started it back up again. I restarted both my phone and my computer. Still getting the «error:closed» return after ‘adb shell’ command. Is there anything else I can try? I have the VM670 Optimus V, and Virgin Mobile has refused to release ANY Android Updates. So I need to root my phone…. Any help would be appreciated greatly…
02-02-2012 08:19 PM
-
Originally Posted by JonnyRedScarf
I have killed the adb server, and started it back up again. I restarted both my phone and my computer. Still getting the «error:closed» return after ‘adb shell’ command. Is there anything else I can try? I have the VM670 Optimus V, and Virgin Mobile has refused to release ANY Android Updates. So I need to root my phone…. Any help would be appreciated greatly…
No need to mess with adb. Try either of these automated root apps depending on your software version. Both install to your pc and are pretty much one click root solutions that do exactly what they’re supposed to do. Use the correct one for whatever radio you have. But no guarantees with the Optimus V.
One click Root for ZVD Only (Froyo)
http://forums.androidcentral.com/lg-…-platform.htmlOne click Root for ZVH or ZVD
http://forums.androidcentral.com/lg-…y-1-0-1-a.html02-03-2012 02:17 AM
-
I’m having the same issue.. can anyone tell me how they resolved it? the kill,start server i tried and it didnt work, i restarted phone and pc multiple times, 1 click root method i cant find for my specific phone (LG L55C from straight talk)..
When i type adb devices i can see the phone.. when i adb shell it gets «error: closed» i cant use the LG ESTEEM root from area51 because of the error : closed thing..Anyone have any ideas on how to resolve this?
09-14-2013 09:16 AM
- Forum
- LG Android Phones
- More LG Phones
- LG Optimus Series
- LG Optimus S
Rooting Issues (adb shell error: closed). Help!
LINK TO POST COPIED TO CLIPBOARD
Hello! I’m trying to install LineageOS 15.1 on my Pixel (sailfish). I’ve been following the official steps, but I’m running into a problem with getting OpenGapps Pico installed.
Setup:
-
Windows 10
-
Latest USB drivers and platform-tools
-
Command prompt (admin mode)
-
July Oreo build of stock Android as base ( sailfish-opm4.171019.021.p1-factory-0bcf4315.zip )
-
LineageOS 15.1 ( lineage-15.1-20181113-nightly-sailfish-signed.zip )
-
OpenGapps Pico ( open_gapps-arm64-8.1-pico-20181113.zip )
-
TWRP ( twrp-3.2.3-1-sailfish.img )
Steps followed:
-
Booted to bootloader (slot B)
-
Flashed stock
-
Booted into stock, set up PIN, enabled USB debugging
-
Rebooted to bootloader
-
Switched to slot A (fastboot —set-active=a)
-
Flashed stock
-
Booted into stock, set up PIN, enabled USB debugging
-
Rebooted to bootloader
-
Booted to TWRP
-
Went into Wipe and clicked Format Data
-
Then went into Advanced Wipe and selected only the System partition, then wiped
-
Copied the latest LineageOS 15.1 build and OpenGapps to the phone via ADB push to /sdcard/
-
Flashed LineageOS
-
Rebooted to recovery, which took me to the LineageOS recovery
-
Flashed OpenGapps… which failed
I went to the «apply update section» and chose the ADB sideload method. Then I ran «adb devices» and verified it could see my device in sideload mode. I ran «adb sideload open_gapps-arm64-8.1-pico-20181113.zip», which I believe actually pulled from the folder I was in on my computer.
It briefly reported an error about being unable to mount /media. Then it gave a verification failed message, but I told it to try anyway. Then it gave me this:
«Error! Installer will now exit… Error Code: 70
-
Unmounting /data /persist
E:Error in /sideload/package.zip (Status 70) Restarting adb… Installation aborted.»
I started over from scratch and tried again, making sure that the /system partition wasn’t resized after LOS installed. This time when I entered sideload mode and after making sure the phone was being seen by ADB, I tried running «adb shell» and got this error: «error: closed«. This seems to be why OpenGapps couldn’t install, or at least part of the reason. I couldn’t find any solutions to getting past this. The most popular answers I was finding after a couple hours of Googling were «update your ADB to latest» and «use TWRP».
Edit: I forgot to mention I’ve also tried «adb kill-server» and «adb start-server», which didn’t do anything, as well as doing «adb kill-server» and «adb usb», which still gave me the «error: closed» message.
I know I’m not supposed to flash TWRP as the recovery, but do I have any other option here? Can I reboot to bootloader instead of recovery after flashing LOS, and then boot into TWRP again without screwing up the current partition setup? I’m trying to follow the official instructions as they’re written… is it possible that they’re wrong or outdated?
I’m trying to open an adb shell on my BQ Aquaris Ubuntu phone. Initially the command failed with a device not found error. Now after adding the phone’s USB ID to a custom INI file as outlined here I get a different error:
error: closed
Any pointers as to what’s going wrong here? How can I open a shell into my Ubuntu phone?
Any help is very much appreciated!!!
EDIT I have set my phone to developer mode and I’m using 14.04 on my desktop.
asked Apr 24, 2015 at 12:02
BénéBéné
9448 silver badges18 bronze badges
3
adb can only connect to a device if the device’s screen is on and unlocked.
This is a security measure so that no one can circumvent your lock screen by accessing your phone via adb.
That is the reason that one has to set a lock to enable developer mode as well.
By unlocking your phone you give the proof to adb that you have the permission to access the phone and it will connect.
answered Apr 27, 2015 at 15:45
-
Incakola
Android Enthusiast
Thread Starter
I was going to sideload a ROM until I discovered that my adb server keeps returning a «error: closed» message. I used Google’s SDK tools so adb is up to date. I’m running on windows 8.1. Tried killing the server but its no good. Have twrp 2.8.2.0
-
Download the Forums for Android™ app!
Download
-
Have you tried the following?
Did you rename the ROM to «update.zip»? (Without the quotes)
Also some times when you rename the file, sometimes Windows will automatically add a .zip to the file extension… So it ends up being update.zip.zip if so remove the extra .zip and try it again.
Try doing it all through adb commands —
Open the command prompt from the directory of where the ROM and the adb.exe is located on your PC (Platform tools) and type the command: «adb reboot recovery» (without the quotes)
Then select “apply update from adb”
Using the command prompt type: «adb sideload update.zip» (without the quotes) The file should then load and the ROM update will start.
When completed, select reboot system. -
Incakola
Android Enthusiast
Thread Starter
After trying once more I figured it’s got to be a problem with the adb driver.
I don’t recall having to type .zip.zip twice in cmd because of renaming it. Once I access the recovery adb it somehow disconnects my device.
=========================================================================
C:Users-DownloadsANDROIDsdkplatform-tools>adb devices
List of devices attached
******************* recoveryafter initiating adb sideload in recovery:
C:Users-DownloadsANDROIDsdkplatform-tools>adb devices
List of devices attached
(nothing)
========================================================================
Fixed outcome:
C:Users-DownloadsANDROIDsdkplatform-tools>adb devices
List of devices attached
****************** sideloadC:Users-DownloadsANDROIDsdkplatform-tools>adb sideload flash.zip
serving: ‘flash.zip’ (~94%) * failed to read command:
(blank flash zip) -
HOW DO YOU FİX THİS ERROR I HAVE THİS PROBLEM
-
Try updating to the latest TWRP fwiw.
A lot of people can’t get this working — while a lot can.
I recently surveyed staff to try this and most couldn’t get it to work.
I approached one of TWRP devs and he couldn’t get his to not work.
The problem is operating system dependent and even configuration dependent on Windows.
Until we get broken and working machines side by side to track down the problem it’s a good bet that this won’t get fixed from either side.
What will work on most phones is an inexpensive OTG USB cable and a USB stick formatted with FAT32.
Btw, to see your files in the command window to check the zip zip thing just say —
dir
-
Incakola
Android Enthusiast
Thread Starter
I’m on windows 8.1 and I had to disable the unnecessary driver security feature implemented in windows 8. Rebooted computer into windows recovery and disabled driver security under advance settings. Then I reinstalled my drivers (pdanet was always my preferred driver for windows 8). If all else fails, try EarlMon’s advice.
- nexus 5