para - Cómo desbloquear el teléfono Android a través de ADB
desbloquear bootloader samsung (10)
Mi pantalla está muerta y quiero desbloquear mi teléfono para poder acceder a través de Kies para hacer una copia de seguridad de mis fotos.
Bloqueé el teléfono a través de Android Device Manager configurando una contraseña fácil (esperaba una opción de desbloqueo una vez que lo cerré) e intenté varios métodos para desbloquearlo, por ejemplo:
adb shell input text 1234
Como no sé cómo se ve la pantalla de bloqueo, no estoy seguro de cuáles son las entradas correctas para desbloquearla.
Sé que el teléfono está encendido y que responde a adb. También puedo ejecutar aplicaciones en él a través de Eclipse. Es un Samsung Galaxy S5 con Android 5.0.
Los siguientes comandos funcionan tanto cuando la pantalla está encendida como apagada
Para bloquear la pantalla:
adb shell input keyevent 82 && adb shell input keyevent 26 && adb shell input keyevent 26
Para bloquear la pantalla y apagarla.
adb shell input keyevent 82 && adb shell input keyevent 26
Para desbloquear la pantalla sin pasar.
adb shell input keyevent 82 && adb shell input keyevent 66
Para desbloquear la pantalla que ha pasado 1234.
adb shell input keyevent 82 && adb shell input text 1234 && adb shell input keyevent 66
Encontré un caso particular en el que no se puede deslizar (deslizar la pantalla táctil de entrada del shell ADB ...) para desbloquear la pantalla de inicio. Más exactamente para Acer Z160 y Acer S57. Los teléfonos son históricos pero aún así, debemos ser tomados en cuenta por nosotros los desarrolladores. Here está el código fuente que resolvió mi problema. Había hecho mi aplicación para comenzar con el dispositivo. y en la función "onCreate" había cambiado temporalmente el tipo de bloqueo.
Además, en caso de que Google Drive haga algo con el archivo zip, publicaré fragmentos de ese código a continuación.
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()
}
}
Este comando te ayuda a desbloquear el teléfono usando ADB
adb shell input keyevent 82 # unlock
Me gustaría compartir mi camino, en primer lugar tuve Huawei ascend p7 y mi pantalla táctil dejó de manejar el tacto, por lo que ninguna de las soluciones anteriores me ayudó a desbloquear el teléfono, he encontrado una manera más inteligente de hacerlo desde que puedo ver la pantalla encendida, por lo que pensé que mi pantalla es 1080 x 1920 px, por lo que tuve que simular un dibujo en mi photoshop con el teclado con (x, y) para poder probar con input mouse tap
comando de input mouse tap
.
Como tengo el bloqueo de PIN como se puede ver en la imagen, tengo todos los (x, y) de todos los números en la pantalla para simular el toque y desbloquear mi pantalla y tengo que hacer una copia de seguridad de mis datos, por lo tanto, si mi contraseña es 123 hice todos los siguientes comandos
adb shell input mouse tap 100 1150
adb shell input mouse tap 500 1150
adb shell input mouse tap 900 1150
Y luego mi teléfono acaba de ser desbloqueado, espero que haya sido útil.
Otra forma sólo para su información.
Use un cable USB OTG y conéctelo con un mouse USB, ¡puede tocar la pantalla haciendo clic con el mouse!
Probado en 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
Trabajó para mi.
Si el dispositivo está bloqueado con pantalla negra, ejecute lo siguiente:
- evento de entrada de shell adb 26 - esto activará la pantalla
- adb shell input keyevent 82 - esto desbloqueará y pedirá pin
- texto de entrada de shell adb xxxx && entrada de shell adb keyevent 66 - esto ingresará su pin y presione enter, desbloqueando el dispositivo a la pantalla de inicio
Si tenía MyPhoneExplorer instalado y conectado (no estoy seguro de que esto sea una necesidad, ya que mi configuración ya estaba en mi lugar), puede usarlo para controlar la pantalla con el mouse de su computadora. Se conecta a través de ADB, para lo cual su cable USB normal es suficiente.
Otra solución que encontré que incluso funcionó sin reiniciar es actualizar las tablas en settings.db y locksettings.db. Sin embargo, tuve que cambiar a la raíz para abrir 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
Si tiene USB-Debugging / ADB habilitado en su teléfono y su PC está autorizada para la depuración en su teléfono, puede probar una de las siguientes herramientas:
Vysor
Vysor es una aplicación web de Chrome que se conecta a su dispositivo a través de adb e instala una aplicación complementaria para transmitir el contenido de su pantalla a la PC. A continuación, puede controlar a distancia su dispositivo con el mouse.
MonkeyRemote
MonkeyRemote es una herramienta de control remoto escrita por mí mismo antes de encontrar a Vysor. También se conecta a través de adb y le permite controlar su dispositivo con el mouse, pero a diferencia de Vysor, el contenido de la pantalla transmitida se actualiza muy lentamente (~ 1 fotograma por segundo). La ventaja es que no es necesario instalar una aplicación complementaria.
Si tiene que hacer clic en Aceptar después de ingresar su contraseña, este comando desbloqueará su teléfono:
adb shell input text XXXX && adb shell input keyevent 66
Dónde
-
XXXX
es su contraseña. -
66
es el código clave del botón OK . -
adb shell input text XXXX
ingresará su código de acceso. -
adb shell input keyevent 66
simulará hacer clic en el botón Aceptar