簡體   English   中英

如果我知道模式,有沒有辦法通過 adb 解鎖 android 手機

[英]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 腳本,但我必須做一些調整才能讓它工作。 以下是我遵循的步驟:

  1. 使用 ADB 通過這個方便的代碼 (adbcontrol) 查看您設備的屏幕。 它允許您查看設備的屏幕並輸入點擊和滑動事件。 無論您多么努力,您都無法使用此程序輸入您的模式。
  2. 通過按順序單擊點來獲取圖案的坐標。 使用 adbcontrol 的輸出窗口查看坐標。 現在您將擁有一組坐標 {(x1, y1), (x2, y2), (x3, y3), (x4, y4)}(對於 4 點模式)。
  3. 將以下命令復制到您的終端中,用您的坐標替換 xi 和 yi。

`

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 的屏幕解散后所做的。

  1. 按照此處的說明安裝 Minimal ADB 和 Fastboot。 就我而言,我已經激活了 ADB 調試,這樣就省去了很多麻煩。
  2. 根據此處的說明,我嘗試了以下操作,但沒有奏效,因為顯然我沒有寫權限:

    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

  3. 因此,基於此答案,我改為執行以下操作,並且有效(從某種意義上說,我沒有寫入訪問錯誤):

    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

  4. 但是應該發生的魔法(即我的手機屏幕出現在我的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM