基本上,想法是在脚本中添加模式解锁,在计算机上运行,通过adb连接到手机。所以,像adb shell输入事件。模式是已知的,没有黑客攻击。
答案 0 :(得分:5)
我在我的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编写的。
注意:
- 我使用/dev/input/event3
作为触摸屏设备,看起来Nexus 4使用/dev/input/event2
。如果您的设备使用其他文件,请将所有命令更改为该文件的sendevents。您可以通过运行adb shell getevent
- 我必须添加一些命令才能在S4上运行,特别是:
adb shell sendevent /dev/input/event3 1 330 1
和
adb shell sendevent /dev/input/event3 1 330 0
我不确定,但我认为第一个命令指示触摸屏上的手指按压事件,第二个命令指示触摸屏上的手指抬起事件。我通过在另一个S4上查看getevent
的{{1}}输出来找出它们。
答案 1 :(得分:2)
似乎最简单的(以及在我的Galaxy S4上使用JDC Optimized CM 13对我有用的东西)是Vysior,这是一个Chrome扩展程序,它适合我和#34;开箱即用&#34 ;。
更确切地说,这是我在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
但是应该发生的魔法(即我手机的屏幕显示在我的电脑屏幕上)并没有发生。我认为我的模式锁屏必须防止事情发生。这是我安装Vysor的时候,大约一分钟后,它在手机上安装了Vysor应用程序,我在计算机屏幕上看到了我的锁屏,并且能够进入模式解锁(它甚至用我的手指在我的平板电脑的触摸屏!)。
答案 2 :(得分:0)
有一个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"
这将再次将模式设置为旧键
答案 3 :(得分:-8)
我认为 - 不会。因为您无法模拟触摸事件(特别是如果锁是滑动组合或数字)