Wie starte ich adb vom Root- in den Benutzermodus neu?

Lesezeit: 6 Minuten

Benutzeravatar von Sandeep
Sandeep

Grundlegende Frage zu ADB.

adb root startet adb als root neu. Aber was ich möchte, ist, es nach einiger Zeit wieder für den Benutzer neu zu starten.

Folgendes habe ich versucht:

adb kill-server
adb start-server

geht nicht..

ps -A -> notierte die Prozessnummer von adb und tötete es.. auch das hat nicht funktioniert. Endlich starte ich mein Gerät neu. Gibt es eine Möglichkeit, von root adb zu general adb zurückzukehren?

Vielen Dank.

Benutzeravatar von Akshay Gaur
Akshay Gaur

Wenn Sie verwendet haben adb roothätten Sie folgende Meldung erhalten:

C:\>adb root
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
restarting adbd as root

Um den Root-Modus zu verlassen, können Sie Folgendes verwenden:

C:\>adb unroot
restarting adbd as non root

  • diese Lösung hat bei mir nicht funktioniert. unbekannte Möglichkeit unroot. Die Lösung von Alex P hat funktioniert.

    – Benutzer13107

    17. April 2017 um 1:08 Uhr

Benutzeravatar von Alex P
Alex P.

adb kill-server und adb start-server kontrolliere nur die adb Daemon auf der PC-Seite. Sie müssen neu starten adbd Daemon auf dem Gerät selbst nach dem Zurücksetzen der service.adb.root Eigentumsänderung durchgeführt von adb root:

~$ adb shell id
uid=2000(shell) gid=2000(shell)

~$ adb root
restarting adbd as root

~$ adb shell id
uid=0(root) gid=0(root)

~$ adb shell 'setprop service.adb.root 0; setprop ctl.restart adbd'

~$ adb shell id
uid=2000(shell) gid=2000(shell)

  • hallo. Ich versuchte es. Das Gerät befindet sich nach Ausführung der Schritte immer noch im Root-Modus.

    – Sandeep

    19. Juli 2013 um 1:32 Uhr

  • Sie machen es entweder falsch oder Ihr Gerät ist kein Standard-Android … siehe mein Update

    – Alex P.

    19. Juli 2013 um 2:23 Uhr

Benutzeravatar von user837048
Benutzer837048

Versuchen Sie Folgendes, um sicherzustellen, dass Sie Ihre Shell zurückbekommen:

Geben Sie adb shell (root) ein. Geben Sie dann den folgenden Befehl ein.

stop adbd && setprop service.adb.root 0 && start adbd &

Dieser Befehl wird stop adbddann setprop service.adb.root 0 wenn adbd war erfolgreich stopped und schließlich restart adbd Sollte die .root -Eigenschaft erfolgreich auf 0 gesetzt wurden. Und all dies wird dank der letzten im Hintergrund erledigt &.

  • Dieser funktioniert perfekt 🙂 Aber der Benutzer könnte verwirrt sein, wo er diese eingeben soll. Also habe ich eine Noob-Antwort geschrieben

    – Jasim Muhammed

    23. Oktober 2014 um 1:28 Uhr

  • Ich habe dies versucht und mein Gerät (auf Lollipop 5.1) wurde einfach leer …. Ich weiß nicht, was passiert ist, habe einfach die Batterie entfernt und wieder eingesetzt und eingeschaltet: /

    – Gökul NC

    8. Juni 2016 um 11:47 Uhr

Ich möchte der Antwort von @ user837048 eine weitere Erklärung hinzufügen. auf meinem OSX Yosemite und Galaxy S3, das gerootet ist und Firmware verwendet CyanogenMod 11 und KitKat Ich habe das folgende Verfahren dazu durchgeführt Enable und Disable root-Eingabeaufforderung.

Bitte vergewissern Sie sich unten

  • Auf Ihrem System

    • Stellen Sie sicher, dass Sie installiert haben Android SDK und Sie haben Pfade zu Binärdateien festgelegt. Typ which adb auf deiner Schale. Es muss Ihnen ein gewisses Ergebnis liefern.

      $ which adb
      /Applications/Android Studio.app/sdk/platform-tools/adb
  • Auf Ihrem Handy

    • Einstellungen > Entwickleroptionen > Android-Debugging = ON
    • Einstellungen > Entwickleroptionen > Root-Zugriff = Apps and ADB

Wenn Sie nicht sehen Developer Options Gehen Sie in Ihren Einstellungen zu Einstellungen > Über das Telefon. Scrollen Sie nach unten zu Build number und dort 7 mal tippen. Ich weiß, es ist verrückt. Aber glaub mir, es funktioniert 😀

Schließen Sie Ihr Telefon über ein USB-Kabel an. tippe auf deine computer's Terminal

$ adb shell

Sie werden eine Eingabeaufforderung ähnlich sehen, Wenn auf Ihrem Mobiltelefon eine Eingabeaufforderung angezeigt wurde, tippen Sie auf „Immer vertrauen“ und „OK“, um der Verbindung zu vertrauen.

shell@m0:/ $

jetzt tippen

shell@m0:/ $ id
uid=2000(shell) gid=2000(shell) groups=1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats) context=u:r:shell:s0

Sehen Sie, Sie sind not root

Verlassen Sie nun die Shell, auf die zurückgegriffen wird computer's prompt

shell@m0:/ $ exit

Aktivieren Sie nun root

$adb shell
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
root@m0:/ #

Wow.. du bist root

root@m0:/ # id
uid=0(root) gid=0(root) context=u:r:shell:s0

Ich habe viele Lösungen ausprobiert, zu denen ich zurückkehren kann normal non root prompt. Hat aber nicht funktioniert, außer der Lösung von @ user837048.

root@m0:/ # stop adbd && setprop service.adb.root 0 && start adbd &
[1] 32137
root@m0:/ #
$

Dies könnte Sie verlassen Adb prompt zur normalen Eingabeaufforderung. Jetzt wieder verbinden.

$ adb shell
shell@m0:/ $

Nun … Sie sind kein Root

Benutzeravatar von Sandeep
Sandeep

Für schnelle Schritte einfach nachsehen Zusammenfassung. Wenn Sie an Details interessiert sind, lesen Sie weiter unten.

adb ist ein Dämon. Tun ps adb wir können seinen Prozess sehen.

shell@grouper:/ $ ps adb
USER     PID   PPID  VSIZE  RSS     WCHAN    PC        NAME
shell     133   1     4636   212   ffffffff 00000000 S /sbin/adbd

Ich habe gerade überprüft, welche zusätzlichen Eigenschaftsvariablen verwendet werden, wenn adb als Root und Benutzer ausgeführt wird.

Adb-Benutzermodus:

shell@grouper:/ $ getprop | grep adb                                         
[init.svc.adbd]: [running]
[persist.sys.usb.config]: [mtp,adb]
[ro.adb.secure]: [1]
[sys.usb.config]: [mtp,adb]
[sys.usb.state]: [mtp,adb]

Adb-Root-Modus:

shell@grouper:/ # getprop | grep adb                                         
[init.svc.adbd]: [running]
[persist.sys.usb.config]: [mtp,adb]
[ro.adb.secure]: [1]
[service.adb.root]: [1]
[sys.usb.config]: [mtp,adb]
[sys.usb.state]: [mtp,adb]

Wir können das sehen service.adb.root ist eine neue Prop-Variable, die auftauchte, als wir adb root machten.

Um also adb von root wieder auf Benutzer zu ändern, habe ich diese 0 gemacht

setprop service.adb.root 0

Aber das änderte nichts.

Dann ging ich weiter und beendete den Prozess (mit der Absicht, den Prozess neu zu starten). Das pid von adbd Prozess in meinem Gerät ist 133

kill -9 133

Ich habe die Shell automatisch verlassen, nachdem ich den Prozess beendet hatte.

Ich tat adb shell wieder war es im Benutzermodus.

ZUSAMMENFASSUNG :

Wir haben also 3 sehr einfache Schritte.

  1. Geben Sie adb shell als root ein.
  2. setprop service.adb.root 0
  3. töten -9 (pid of adbd)

Nach diesen Schritten betreten Sie die Shell einfach erneut mit adb shell und Sie sind als Benutzer wieder auf Ihrem Gerät.

Benutzeravatar von Sravani
Sravani

Dies ist ein sehr häufiges Problem.

Eine Lösung ist ADB-Server beenden und neu starten es über die Eingabeaufforderung. Manchmal kann dies nicht helfen.

Gehen Sie einfach zum Windows Task-Manager, um den adb-Prozess zu beenden und Eclipse neu zu starten.

Wird perfekt funktionieren 🙂

Benutzeravatar von Giuseppe Vetri
Giuseppe Vetri

Ich habe mit diesem Problem mit elementarem OS Loki gearbeitet. Für ungefähr einen Tag und ich habe es gelöst, indem ich die ADB mit diesem Befehl neu gestartet habe:

./adb kill-server

und

./adb start-server

Sie müssen sich im SDK-Ordner >Platform Tools befinden

Starten Sie jetzt Ihr Telefon neu. Dadurch wird der gesamte Prozess in Ihrem Telefon neu gestartet.

Und so habe ich es behoben.

1395600cookie-checkWie starte ich adb vom Root- in den Benutzermodus neu?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy