Adbd cannot run as root in production builds что делать
Adbd cannot run as root in production builds что делать
Platform-tools: r31.0.3
ADB: 1.0.41 (31.0.3-7562133)
Fastboot: 31.0.3-7562133
Make_f2fs: 1.14.0 (2020-08-24)
Mke2fs: 1.46.2 (28-Feb-2021)
Последнее обновление утилит в шапке: 01.08.2021
Если что-то неправильно, то в списке подключенных устройств (List of devices attached) будет пусто.
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 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.
Пример ниже выводит в лог все сообщения с тэгом «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.
Контроль формата вывода лога
brief Показывать приоритет/тэг и PID процесса (формат по умолчанию).
process Показывать только PID.
tag Показывать только приоритет/тэг.
thread Показывать только процесс:поток и приоритет/тэг.
raw Показать необработанное сообщение, без полей метаданных.
time Показывать дату, время вызова, приоритет/тэг и PID процесса.
long Показывать все поля метаданных и отдельно сообщения с пустыми строками.
Корень ADB не работает на эмуляторе (не может работать от имени root в производственных сборках)
Я только что обновил эмулятор 26.0.3, теперь я не могу запустить команду adb root для нового созданного эмулятора.
приведенная ниже ошибка:
adbd cannot run as root in production builds
Ничего не помогает, любые идеи?
Я не уверен, в чем разница и как выбрать другую сборку, но, если во время создания включены следующие настройки, тогда он имеет root.
ОТВЕТЫ
Ответ 1
[Кредит принадлежит @Merk, но это должно быть опубликовано как ответ, а не комментарий.]
Чтобы включить root-доступ, используйте изображение эмулятора, например
API-интерфейс Google API Intel x86 Atom Image
Изображение системы Intel X86 Atom для Google Play
adbd не может работать как root в производственных сборках
Шаги. Чтобы установить и использовать образ эмулятора, который может работать от имени пользователя root:
Выберите системный образ. Выберите любой из них:
Изображение системы Intel x86 Atom
Системный образ Intel x86 Atom_64
API-интерфейс Google API Intel x86 Atom Image
Google API. Системный образ Intel x86 Atom_64.
(НЕ выбирайте «Google Play. System Image». Это те, которые не могут выполняться как root.)
Ответ 2
Вы используете неправильное изображение эмулятора, если хотите получить доступ root. Как указано в сообщении об ошибке, root не допускается в производственных сборках, вместо этого используйте сборку userdebug.
Я рутировал свой разблокированный Galaxy S3 (SGH-T999)
Итак, я попробовал следующее:
Открыть командную строку
У меня ничего из вышеперечисленного не сработало. Все, что они делают, это дают ROOT доступ ВНУТРИ ОБОЛОЧКИ. Я хочу adb root работать так, чтобы я мог выполнять различные команды adb БЕЗ входа в оболочку.
По конструкции adb root команда работает в разработке строит только (то есть eng и userdebug которых есть ro.debuggable=1 по умолчанию). Итак, чтобы включить adb root команду на вашем устройстве с рут- правами, просто добавьте ro.debuggable=1 строку в один из следующих файлов:
В качестве альтернативы вы можете использовать модифицированный adbd двоичный файл (который не проверяет ro.debuggable )
Я столкнулся с этой проблемой при попытке получить root-доступ к эмулятору, я обнаружил, что это потому, что я запускал эмулятор Nexus 5x, на котором был Google Play. Создал другой эмулятор, у которого не было Google Play, и он adb root будет рутировать устройство за вас. Надеюсь, это кому-то поможет.
Я использую для входа в режим su в оболочке abd
У меня рутированный Samsung Galaxy Trend Plus (GT-S7580).
Запуск ‘adb root’ дает мне ту же ошибку ‘adbd не может работать как root в производственных сборках’.
Пожалуйста, проверьте, не допускаете ли вы ошибок при использовании этого способа.
Если он по-прежнему не работает, проверьте, правильно ли вы рутировали устройство. Если по-прежнему не повезло, попробуйте установить пользовательское ПЗУ, такое как Cyanogen Mod, чтобы «adb root» работал.
Вам необходимо заменить двоичный файл adbd в папке boot.img / sbin / на тот, который поддерживает su. Вам также придется внести некоторые правки в default.prop.
Также у Chainfire есть приложение, которое будет предоставлять root-права adbd в игровом магазине: https://play.google.com/store/apps/details?id=eu.chainfire.adbd&hl=en
Это всего лишь несколько примеров. Если вы конкретно укажете, чего вы пытаетесь достичь, я могу дать более конкретный совет.
adb shell su работает, но adb root не работает
Я укоротил свою разблокированную Galaxy S3 (SGH-T999)
Итак, я попробовал следующее:
Откройте командную строку
7 ответов
По дизайну команда adb root работает только в userdebug разработки (т.е. eng и userdebug которые по умолчанию имеют ro.debuggable=1 ). Поэтому, чтобы включить команду adb root на ваше иначе внедренное устройство, просто добавьте ro.debuggable=1 в один из следующих файлов:
В качестве альтернативы вы можете использовать измененный adbd код adbd (который не проверяет ro.debuggable )
У меня есть встроенный Samsung Galaxy Trend Plus (GT-S7580).
Запуск «adb root» дает мне то же самое, что «adbd не может выполняться с ошибкой root in production».
Для устройств, имеющих параметры разработчика → Root access, выберите «Только ADB», чтобы обеспечить доступ к устройству с помощью adb root (как предложено NgaNguyenDuy).
Затем попробуйте запустить команду в соответствии с решением запустите script как root через ADB. В моем случае я просто хотел запустить команду netcfg rndis0 dhcp, и я сделал это следующим образом:
Пожалуйста, проверьте, выполняете ли вы какие-либо ошибки во время работы таким образом.
Если он все еще не работает, проверьте правильность установки устройства. Если вам все еще не повезло, попробуйте установить пользовательский диск, например Cyanogen Mod, чтобы работать с «adb root».
Вам нужно заменить двоичный файл adbd в файле boot.img/sbin/на тот, который способен su. Вам также придется внести некоторые изменения по умолчанию.prop тоже.
Кроме того, Chainfire имеет приложение, которое предоставит разрешение root для adbd в магазине воспроизведения: https://play.google.com/store/apps/details?id=eu.chainfire.adbd&hl=en
Наконец, если вы пытаетесь написать сценарий Windows с разрешениями SU, вы можете сделать это, используя следующий командный стиль. Тем не менее, вам, по крайней мере, нужно предоставить (по телефону) разрешения SU, чтобы время его запуска.
Это лишь некоторые примеры. Если вы конкретно заявляете, что вы пытаетесь выполнить, я могу дать более конкретные советы