我的屏幕已经死了,我想解锁手机,以便通过Kies访问它来备份我的照片。
我通过Android设备管理器锁定了手机,设置了一个简单的密码(一旦锁定它就希望解锁选项)并尝试了各种解锁方法,例如:
adb shell input text 1234
由于我不知道锁屏的样子,我不确定解锁它的正确输入。
我知道手机已打开,并且它响应adb。我也可以通过Eclipse在其上运行应用程序。 这是一款搭载Android 5.0的三星Galaxy S5。
答案 0 :(得分:33)
此命令可帮助您使用ADB解锁手机
adb shell input keyevent 82 # unlock
答案 1 :(得分:32)
如果您在输入密码后必须单击“确定”,此命令将解锁您的手机:
adb shell input text XXXX && adb shell input keyevent 66
其中
XXXX
是您的密码。66
是按钮的键码确定。adb shell input text XXXX
将输入您的密码。adb shell input keyevent 66
将模拟点击确定按钮答案 2 :(得分:24)
在Nexus 5中测试:
adb shell input keyevent 26 #Pressing the lock button
adb shell input touchscreen swipe 930 880 930 380 #Swipe UP
adb shell input text XXXX #Entering your passcode
adb shell input keyevent 66 #Pressing Enter
为我工作。
答案 3 :(得分:15)
如果您的手机启用了USB调试/ ADB,并且您的PC已获得手机调试授权,那么您可以尝试以下其中一种工具:
Vysor是一款Chrome网络应用,可通过adb连接到您的设备,并安装配套应用以将您的屏幕内容流式传输到PC。然后,您可以使用鼠标远程控制设备。
在我找到Vysor之前,MonkeyRemote是我自己编写的远程控制工具。它还通过adb连接并允许您通过鼠标控制您的设备,但与Vysor相比,流式屏幕内容更新速度非常慢(每秒约1帧)。好处是不需要安装配套应用程序。
答案 4 :(得分:13)
另一种仅供您参考的方式。
使用USB OTG线缆连接USB鼠标,点击鼠标即可触摸屏幕!
答案 5 :(得分:12)
锁定屏幕:
adb shell input keyevent 82 && adb shell input keyevent 26 && adb shell input keyevent 26
锁定屏幕并将其关闭
adb shell input keyevent 82 && adb shell input keyevent 26
解锁屏幕而不通过
adb shell input keyevent 82 && adb shell input keyevent 66
解锁已通过1234的屏幕
adb shell input keyevent 82 && adb shell input text 1234 && adb shell input keyevent 66
答案 6 :(得分:8)
如果设备被黑屏锁定,请执行以下操作:
答案 7 :(得分:3)
如果您安装并连接了MyPhoneExplorer(不确定这是必须的,恰好是我的设置),您可以使用它来控制计算机鼠标的屏幕。它通过ADB连接,您的普通USB电缆就足够了。
我发现另一个解决方案,即使没有重启也可以更新settings.db和locksettings.db中的表 我不得不切换到root来打开settings.db但是:
adb shell
su
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
update secure set value=1 where name='lockscreen.disabled';
.quit
sqlite3 /data/system/locksettings.db
update locksettings set value=0 where name='lock_pattern_autlock';
update locksettings set value=1 where name='lockscreen.disabled';
.quit
答案 8 :(得分:1)
我想分享我的方式,首先我让华为提升了p7而我的触摸屏停止了处理触摸,所以上述解决方案都没有帮助我解锁手机,我找到了一个更好的聪明方法因为我可以看到屏幕,因此我认为我的显示器是1080 x 1920像素,因此我必须使用键盘(x,y)在我的photoshop上模拟绘图,所以我可以尝试使用input mouse tap
命令。
由于我已经在图片中看到了针锁,我已经获得了屏幕上所有数字的所有(x,y)来模拟触摸并解锁我的屏幕并且必须备份我的数据,因此如果我的话密码是123我做了以下所有命令
adb shell input mouse tap 100 1150
adb shell input mouse tap 500 1150
adb shell input mouse tap 900 1150
然后我的手机刚刚解锁,我希望它有用。
答案 9 :(得分:1)
如果您想在不触摸手机的情况下打开手机,
步骤
adb devices
来贴一下手机是否准备就绪List of devices attached
059c97f4 device
然后输入以下命令
adb shell input keyevent 26 && adb shell input swipe 600 600 0 0 && adb shell input text <pass> && adb shell input keyevent 66
在<pass>
中输入密码并完成。希望您的电话已打开
答案 10 :(得分:0)
我发现了一种特殊情况,即无法滑动(ADB Shell输入触摸屏滑动...)来解锁主屏幕。更适合Acer Z160和Acer S57。这些电话已经成为历史,但我们的开发人员仍需考虑这些电话。 Here是解决我的问题的代码源。我已经使我的应用程序从设备开始。在“ onCreate”功能中,我临时更改了锁定类型。
此外,以防万一谷歌驱动器对zip文件起作用,我将在下面发布该代码的片段。
AndroidManifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.gresanuemanuelvasi.test_wakeup">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".ServiceStarter" android:enabled="true" android:exported="false" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
android:directBootAware="true" tools:targetApi="n">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
</manifest>
class ServiceStarter: BroadcastReceiver() {
@SuppressLint("CommitPrefEdits")
override fun onReceive(context: Context?, intent: Intent?) {
Log.d("EMY_","Calling onReceive")
context?.let {
Log.i("EMY_", "Received action: ${intent!!.getAction()}, user unlocked: " + UserManagerCompat.isUserUnlocked(context))
val sp =it.getSharedPreferences("EMY_", Context.MODE_PRIVATE)
sp.edit().putString(MainActivity.MY_KEY, "M-am activat asa cum trebuie!")
if (intent!!.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
val i = Intent(it, MainActivity::class.java)
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
it.startActivity(i)
}
}
}
}
class MainActivity : AppCompatActivity() {
companion object {
const val MY_KEY="MY_KEY"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val kgm = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
val kgl = kgm.newKeyguardLock(MainActivity::class.java.simpleName)
if (kgm.inKeyguardRestrictedInputMode()) {
kgl.disableKeyguard()
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(arrayOf(Manifest.permission.RECEIVE_BOOT_COMPLETED), 1234)
}
else
{
afisareRezultat()
}
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
if(1234 == requestCode )
{
afisareRezultat()
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
private fun afisareRezultat() {
Log.d("EMY_","Calling afisareRezultat")
val sp = getSharedPreferences("EMY_", Context.MODE_PRIVATE);
val raspuns = sp.getString(MY_KEY, "Doesn't exists")
Log.d("EMY_", "AM primit: ${raspuns}")
sp.edit().remove(MY_KEY).apply()
}
}
答案 11 :(得分:0)
@Yogeesh Seralathan略微修改了答案。他的答案非常完美,只需立即运行这些命令即可。
adb shell input keyevent 26 && adb shell input touchscreen swipe 930 880 930 380 && adb shell input text XXXX && adb shell input keyevent 66
答案 12 :(得分:0)
基于@Bhaskar 的回答和其他答案,这里有一个完整的解锁命令(在 Pixel 3 上测试):
adb shell input keyevent 26 && adb shell input keyevent 82 && adb shell input text <password> && adb shell input keyevent 66
答案 13 :(得分:0)
滑动解锁(适用于 Pixel 3a):
adb shell input keyevent 26 && adb shell input touchscreen swipe 2 4400 500 2