Ответы:
Если я правильно понимаю ваш вопрос, вы спрашиваете, как автоматически получить root-доступ при запуске adb shell
, чтобы вам не приходилось заходить в оболочку и вводить su
команду от имени root на вашем телефоне.
Это контролируется флагом в вашем загрузочном разделе, который большинство пользовательских ПЗУ изменили, чтобы разрешить права root по умолчанию. Если $
при использовании adb shell
вы перешли на a , то у вас есть два постоянных варианта и один временный (временный, что означает, что он не будет зависать при перезагрузке):
adbd
на своем устройстве с правами rootНомер 2 на самом деле не так уж и сложен, но он может быть несколько опасным, если вы небрежны. Существует вики статья здесь , которая объясняет этот процесс и включает в себя несколько сценариев Perl , чтобы помочь вам. Эти инструкции предполагают среду Linux / Unix. Я лично использовал эти инструкции для Fedora Linux и могу сказать вам, что они работают, но я не знаю о других * nix средах, таких как Mac. Я также не знаю каких-либо аналогичных инструкций для Windows, но я мог бы попытаться отследить их, если вы используете Windows. Точные команды будут отличаться от телефона к телефону, поскольку разные устройства используют разные таблицы разделов.
Тем не менее, в общем, вам нужно вытащить ваш текущий boot.img из телефона, распаковать его, извлечь виртуальный диск и найти файл default.prop . Это обычный текстовый файл, который необходимо открыть в текстовом редакторе, а затем найти строку, содержащую значение ro.secure
. Если строка говорит, ro.secure=1
то вам нужно изменить его на ro.secure=0
. После этого вы можете перепаковать ramdisk и boot.img, а затем прошить его на свой телефон. Как только вы перезагрузите компьютер, вы получите #
приглашение при выполнении adb shell
без необходимости запуска su
.
В качестве альтернативы, если вы используете пользовательское ПЗУ, но оно не имеет этой модификации, вы можете просто разархивировать ПЗУ и изменить файл boot.img, который входит в него, используя описанные выше шаги. Затем вы можете заархивировать ПЗУ с помощью недавно модифицированного boot.img и прошить zip-файл, как обычно.
Это, вероятно, само собой разумеется, но будьте осторожны при этом. Перепутывание вашего загрузочного раздела может довольно легко испортить ваш телефон и заставить вас восстановиться через HBoot. Я настоятельно рекомендую протестировать Fastboot, чтобы убедиться, что вы можете использовать расширенные команды Fastboot и выполнить восстановление. Это зависит от вашей модели, но большинство телефонов имеют программное обеспечение для настольных компьютеров, которое также можно запускать для перепрошивки телефона.
Третий вариант заключается в том, что во многих случаях возможно перезагрузить adbd
устройство с правами root. Одной из возможностей является выполнение adb root
с терминала ПК, хотя это не будет работать на всех конфигурациях ПЗУ (ПЗУ должно быть построено как пользовательская отладка). Вы также можете попробовать небезопасное приложение adbd в Chainfire . Это не будет сохраняться после перезагрузки, поэтому вам нужно будет использовать приложение или adb root
снова каждый раз, когда вы перезагружаете свой телефон.
adbd
по умолчанию разрешено иметь только права root на телефоне. Есть сообщение от члена команды Android, которое подразумевает это, но не говорит об этом явно. Эта фиксация AOSP также подразумевает, что это просто флаг, который adbd
проверяет запуск (я не вижу его в другом месте в источнике). Как я уже упоминал, на большинстве пользовательских ПЗУ, которые я видел (включая CM), он установлен на 0.
adb root
команду для перезапуска adbd в режиме auto-su, видимо она на это опирается. Я действительно думаю, что вы были правы, что это просто флаг.
// ... except we allow running as root in userdebug builds if the service.adb.root property has been set by the "adb root" command"
. Кстати, именно так работала первая версия BurritoRoot для Kindle Fire, IIRC.
Хорошо, если ваш телефон рутирован, вы можете запускать команды с помощью команды "su -c".
Вот пример команды cat в файле build.prop для получения информации о продукте для телефона.
adb shell "su -c 'cat /system/build.prop |grep "product"'"
Это вызывает разрешение root и запускает команду внутри ''
Обратите внимание на 5 конечных кавычек, которые необходимы для закрытия ВСЕХ ваших конечных кавычек, иначе вы получите ошибку.
Для пояснения формат таков.
adb shell "su -c '[your command goes here]'"
Убедитесь, что вы вводите команду ТОЧНО, как обычно при запуске в оболочке.
Попробуйте, надеюсь, это поможет.
Просто установите adbd Небезопасно .
Что вы пытаетесь запустить как root? Вы говорите, что хотите запустить оболочку ADB с правами root, но не хотите использовать оболочку ADB? Вы можете уточнить?
Если приложение запрашивает root-доступ, то приложение SuperUser на вашем телефоне должно обрабатывать, давать ему разрешение или нет. Процесс, в котором вы рутировали свой телефон, должен был включать приложение SuperUser.
adb shell ps
или adb shell
затем, ps
чтобы получить список запущенных процессов. Так что некоторые вещи требуют root-доступа, я хочу быть в состоянии сделать первое.
В качестве альтернативы, вы можете написать свой скрипт на телефоне и просто заставить его выполнить adb, например:
adb shell sh /sdcard/myscript.sh
Сценарий может поднять себя без вашего вмешательства (при условии, что SuperUser настроен на запоминание утверждения), например:
su
pm setInstallLocation 1
Я только что сделал это на своем телефоне с успехом, единственная проблема в том, что я не совсем понял, как правильно завершить сеанс оболочки adb. Мне нужно нажать Ctrl-C в моей оболочке Windows, чтобы вернуться в командную строку Windows - в противном случае adb просто сидит в командной #
строке и не принимает ввод.
я использую для ремонта неисправность кнопки домой
устройства adb
adb shell su -c commands
или же
Корневая оболочка adb
adb kill-server
Вы также можете установить бит suid на свой 'sh'. Я использую BusyBox, поэтому инструкции могут не соответствовать вашим настройкам:
и у вас должно быть приглашение root