Entsperren Sie den Bildschirm mit ADB Android 4.2

Zuvor mit Android 4.1, so etwas wie:

adb shell input keyevent 82  
#(KEYCODE_MENU)

würde den Bildschirm beim ersten Booten entsperren und dann weitere Befehle zulassen, um Anwendungen zu starten und auf dem Bildschirm anzuzeigen usw.

Mit 4.2 wird der Sperrbildschirm innerhalb von 10 Sekunden nach dem Start schwarz. Das Ausgeben desselben ADB-Befehls funktioniert nicht mehr und der Bildschirm bleibt leer.

Wenn ich die Menütaste manuell drücke, wird der Bildschirm wieder eingeschaltet, und ich kann dann das Tastenereignis zum Entsperren des Bildschirms ausgeben.

Irgendwelche Ideen, wie ich die Anzeige von ADB wiederherstellen und den Bildschirm von dort aus entsperren kann?

Vielen Dank

Es gibt eine Liste von Keyevents hier und hier , falls jemand sie als Referenz braucht...

Antworten (3)

Wenn Sie auf 4.2.2 sind, möchten Sie vielleicht zB ADB Whitelist lesen Ab Android 4.2.2 : Ab dieser Android-Version müssen "Remote-Geräte" (dh diejenigen, von denen Sie ADB-Befehle ausführen ) vom Android-Gerät autorisiert werden (dh derjenige, auf dem diese Befehle ausgeführt werden ) - damit Ihr Android-Gerät "vertrauenswürdige Anrufer" von "böswilligen Angreifern" unterscheiden kann. Sie finden dies auch ausführlich in diesem Artikel auf AndroidPolice :

Die Funktionsweise ist ziemlich einfach: Wenn Sie Ihren PC über USB mit Ihrem Android-Gerät verbinden, erhält Android den RSA-Schlüssel Ihres PCs (ein Identifizierungstoken). Wenn Sie in Android 4.2.2 das USB-Debugging aktiviert haben, wird jetzt bei der Verbindung eine Eingabeaufforderung angezeigt (siehe unten).

Autorisierungsaufforderung
(Bildquelle: AndroidPolice )

Update aus den Kommentaren unten:

Wie Shuraneadb keyevent betonte, scheint sich das Verhalten von außerdem mit Android 4.2.2 geändert zu haben: Während adb keyevent 26es zuvor einen dedizierten „Bildschirm aus“- und adb shell input keyevent 82einen dedizierten „Bildschirm ein“-Schalter gab, gibt es jetzt adb keyevent 26einen Schalter , der den Bildschirm ausschaltet ( wenn es an ist) und an (wenn es aus ist), wie von Pepelac bemerkt .

Auch danach adb whitelistingfunktioniert das Senden eines Keyevents in 4.2.2 nicht auf die gleiche Weise.
Ihr Kommentar deutet darauf hin, dass es dann anders funktioniert. Haben Sie etwas dagegen, ein wenig mehr zu erläutern? Könnte sogar eine separate Antwort wert sein.
Nun, adb shell input keyevent 26schaltet den Bildschirm aus und adb shell input keyevent 82wieder ein, richtig? Aber für 4.2.2 keyevent 26scheint es nur zu funktionieren. keyevent 82funktioniert nicht warum auch immer.
Ich verstehe. Da ich kein 4.2+ Gerät habe, kann ich es nicht selbst überprüfen - aber vielleicht hat jemand anderes ein paar Tipps dazu.
@Shurane adb shell input keyevent 26schaltet es aus / ein
@Pepelac das sollte dann wohl die Antwort auf die Frage sein.
Ich habe das in meine Antwort integriert. Danke, @Pepelac!
keyevent 82 ist die Menütaste. Keyevent 26 ist der Einschaltknopf. Wie Shurane sagte, es ist ein/aus.

Der Trick ist, dass Sie in 4.4.x und/oder anderen Systemen eine Enternach dem Befehl senden müssen, oder Sie müssen x Sekunden/Minute warten.

Also mach es so:

adb shell

@shell: input keyevent 26

@shell: 

@shell: exit

Das wird auf jeden Fall funktionieren, denke ich.

funktionierte für mich auf Android 4.1.1 (Bildschirm weigert sich, den Netzschalter einzuschalten)

Stellen Sie das Gerät in den Sicherheitseinstellungen auf den Modus „Keine Sperre“ (Sperreinstellungen in einigen Android-Versionen), damit das Betriebssystem nach dem Neustart direkt zum Startbildschirm wechselt.

Sie können dann ein beliebiges Schlüsselereignis senden, am besten ein nicht erkanntes, damit es nicht vom Standardhandler verarbeitet wird, um den Bildschirm aufzuwecken.

EDIT: Das funktioniert gut auf 4.1. Ich habe 4.4 überprüft und andere Ereignisse als 26 funktionieren nicht, wenn der Bildschirm ausgeschaltet ist. Dies liegt vermutlich daran, dass jetzt ein weiteres separates Gerät für den Netzschalter definiert ist und die anderen möglicherweise inaktiv sind. Sie müssen also überprüfen, ob der Bildschirm ausgeschaltet ist (dumpsys power, suchen Sie nach mScreenOn) und wenn ausgeschaltet, 26 senden. Sie müssen die Überprüfung durchführen, um zu verhindern, dass er ausgeschaltet wird, während er eingeschaltet ist. Dies funktioniert auf allen Android-Versionen.