【发布时间】:2014-06-25 02:50:54
【问题描述】:
基本上,想法是在脚本中添加模式解锁,在计算机上运行,通过 adb 连接到手机。因此,类似于 adb shell 输入事件。模式是已知的,没有黑客攻击。
【问题讨论】:
基本上,想法是在脚本中添加模式解锁,在计算机上运行,通过 adb 连接到手机。因此,类似于 adb shell 输入事件。模式是已知的,没有黑客攻击。
【问题讨论】:
这是一个老问题,但为了帮助找到此帖子的任何人,请查看 my android-pattern-unlock shell script。
它使用 ADB 的 sendevent 将已知的解锁模式绘制到锁定屏幕中。为我工作并允许我在屏幕损坏的情况下获得访问权限。
【讨论】:
我在我的 S4 上尝试了 Matt Wilson 的 android-pattern-unlock shell script,但我必须进行一些调整才能使其正常工作。 以下是我遵循的步骤:
`
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 输出发现了它们。
【讨论】:
getevent 来获取我的解锁图案上半部分的坐标,推断出下半部分的坐标,并使用您的脚本解锁手机,然后删除解锁图案。救命稻草!
adb shell getevent -pcommand查看触摸屏的id,这样您就可以将命令的/dev/inpux/event3更改为/dev/input/event#其中#是您的id触摸屏。
有一个命令locksettings,您可以在其中创建、更改或清除您的图案、图钉和密码
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]
是的,您可以从命令行更改或创建模式,用法是
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"
这将再次将模式设置为旧键
【讨论】:
Vysior 似乎是最简单的(并且在我的带有 JDC 优化 CM 13 的 Galaxy S4 上对我有用)是一个“开箱即用”的 Chrome 扩展程序。
更准确地说,这是我在 S4 的屏幕失效后所做的。
根据here 的说明,我尝试了以下操作,但没有成功,因为显然我没有写权限:
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
因此,基于this answer,我改为执行以下操作,并且有效(从某种意义上说,我没有写入访问错误):
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 应用程序,我在电脑屏幕上看到了我的锁屏,并且能够输入解锁模式(它甚至可以用我的手指在我的平板电脑的触摸屏!)。
【讨论】:
我认为 - 不。因为您无法模拟触摸事件(特别是如果锁定是滑动组合或数字)
【讨论】: