[英]Is there a way to unlock android phone via adb, if I KNOW the pattern
基本上,想法是在腳本中添加模式解鎖,在計算機上運行,通過 adb 連接到手機。 因此,類似於 adb shell 輸入事件。 模式是已知的,沒有黑客攻擊。
這是一個老問題,但為了幫助找到這篇文章的任何人,請查看我的 android-pattern-unlock shell script 。
它使用 ADB 的 sendevent 將已知的解鎖圖案繪制到鎖定屏幕中。 為我工作並允許我通過破碎的屏幕訪問。
我在我的 S4 上嘗試了 Matt Wilson 的android-pattern-unlock shell 腳本,但我必須做一些調整才能讓它工作。 以下是我遵循的步驟:
`
adb shell input keyevent 26
adb shell sendevent /dev/input/event3 3 57 14
adb shell sendevent /dev/input/event3 1 330 1
adb shell sendevent /dev/input/event3 3 53 x1
adb shell sendevent /dev/input/event3 3 54 y1
adb shell sendevent /dev/input/event3 3 58 57
adb shell sendevent /dev/input/event3 0 0 0
adb shell sendevent /dev/input/event3 3 53 x2
adb shell sendevent /dev/input/event3 3 54 y2
adb shell sendevent /dev/input/event3 3 58 57
adb shell sendevent /dev/input/event3 0 0 0
adb shell sendevent /dev/input/event3 3 53 x3
adb shell sendevent /dev/input/event3 3 54 y3
adb shell sendevent /dev/input/event3 3 58 57
adb shell sendevent /dev/input/event3 0 0 0
...
adb shell sendevent /dev/input/event3 3 53 xn
adb shell sendevent /dev/input/event3 3 54 yn
adb shell sendevent /dev/input/event3 3 58 57
adb shell sendevent /dev/input/event3 0 0 0
adb shell sendevent /dev/input/event3 3 57 4294967295
adb shell sendevent /dev/input/event3 1 330 0
adb shell sendevent /dev/input/event3 0 0 0
`
這些步驟適用於 Galaxy S4,看起來 Matt Wilson 的代碼是為 Nexus 4 編寫的。
筆記:
- 我的 S4 使用/dev/input/event3
作為觸摸屏設備,看起來 Nexus 4 使用/dev/input/event2
。 如果您的設備使用不同的文件,請將所有命令更改為將事件發送到該文件。 您可以通過運行adb shell getevent
查看設備列表
- 我必須添加一些命令才能在 S4 上進行這項工作,特別是:
adb shell sendevent /dev/input/event3 1 330 1
和
adb shell sendevent /dev/input/event3 1 330 0
我不確定,但我認為第一個命令表示觸摸屏上的手指按下事件,第二個命令表示觸摸屏上的手指抬起事件。 我通過查看不同 S4 上/dev/input/event3
getevent
輸出來弄清楚它們。
似乎最簡單的(以及在我的帶有 JDC Optimized CM 13 的 Galaxy S4 上對我有用的東西)是Vysior ,它是一個 Chrome 擴展,它“開箱即用”對我有用。
更准確地說,這是我在 S4 的屏幕解散后所做的。
根據此處的說明,我嘗試了以下操作,但沒有奏效,因為顯然我沒有寫權限:
adb shell echo "persist.service.adb.enable=1" >>/system/build.prop echo "persist.service.debuggable=1" >>/system/build.prop echo "persist.sys.usb.config=mass_storage,adb" >>/system/build.prop reboot
因此,基於此答案,我改為執行以下操作,並且有效(從某種意義上說,我沒有寫入訪問錯誤):
adb remount adb shell echo "persist.service.adb.enable=1" >>/system/build.prop echo "persist.service.debuggable=1" >>/system/build.prop echo "persist.sys.usb.config=mass_storage,adb" >>/system/build.prop reboot
但是應該發生的魔法(即我的手機屏幕出現在我的 PC 屏幕上)並沒有發生。 我想我的圖案鎖屏一定是在防止事情發生。 這是當我安裝 Vysor 時,大約一分鍾后,它在手機上安裝了 Vysor 應用程序,我在電腦屏幕上看到了我的鎖屏,並且能夠輸入解鎖圖案(它甚至可以用我的手指在我的平板電腦的觸摸屏!)。
有一個命令locksettings
,您可以在其中創建、更改或清除您的圖案、pin 和密碼
locksettings set-pattern [--old OLD_CREDENTIAL] NEW_PATTERN locksettings set-pin [--old OLD_CREDENTIAL] NEW_PIN locksettings set-password [--old OLD_CREDENTIAL] NEW_PASSWORD locksettings clear [--old OLD_CREDENTIAL]
Yaa,您可以從命令行更改或創建模式,用法是
locksettings set-pattern
:模式由非分隔的數字列表指定,這些數字列表以基於 1 的方式以從左到右和從上到下的順序對模式上的單元格進行索引,即左上角的單元格以 1 為索引,而右下角的單元格索引為 9。例如:1234
簡單地說,解鎖手機清除圖案,打開手機然后再次設置圖案
代碼
adb shell "locksettings clear --old XXXX"
這將清除您的模式。
adb shell "input keyevent 26"
這將按下電源按鈕以喚醒屏幕。
adb shell "input swipe 300 1000 300 300"
這將向上滑動屏幕。 現在您的手機顯然已解鎖。
adb shell "locksettings set-pattern XXXX"
這將再次將模式設置為舊密鑰
我認為 - 不。因為你不能模擬觸摸事件(特別是如果鎖是滑動組合或數字)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.