web-dev-qa-db-fra.com

Comment débloquer un téléphone Android via la BAD

Mon écran est mort et je souhaite déverrouiller mon téléphone pour pouvoir y accéder via Kies afin de sauvegarder mes photos.

J'ai verrouillé le téléphone via Android Device Manager en définissant un mot de passe simple (j'espérais une option de déverrouillage une fois que je l'ai verrouillé) et j'ai essayé diverses méthodes pour le déverrouiller, par exemple:

adb Shell input text 1234

Comme je ne sais pas à quoi ressemble l'écran de verrouillage, je ne suis pas sûr des entrées correctes pour le déverrouiller.

Je sais que le téléphone est allumé et qu'il répond à ADB. Je suis également capable de faire fonctionner des applications via Eclipse… .. C'est un Samsung Galaxy S5 avec Android 5.0.

26
schoel

Mots-clés pour télécharger un mot de passe OK, choisissez un numéro de téléphone:

adb Shell input text XXXX && adb Shell input keyevent 66

Kde

  • XXXX je váš přístupový kód.
  • 66 je klíčový kód tlačítkaOK.
  • adb Shell input text XXXX zadá váš přístupový kód.
  • adb Shell input keyevent 66 bude simulovat kliknutíOKtlačítko
35
Tien

Cette commande vous aide à déverrouiller votre téléphone avec ADB. 

adb Shell input keyevent 82 # unlock
29
Bhaskar

Testé dans 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

Travaillé pour moi.

20
Yogeesh Seralathan

Si la fonction USB-Debugging/ADB est activée sur votre téléphone et que votre PC est autorisé à le déboguer sur votre téléphone, vous pouvez essayer l'un des outils suivants:

Vysor

Vysor est une application Web chrome qui se connecte à votre appareil via adb et installe une application associée pour diffuser le contenu de votre écran sur votre PC. Vous pouvez ensuite contrôler votre appareil à distance avec votre souris.

MonkeyRemote

MonkeyRemote est un outil de contrôle à distance écrit par moi-même avant de trouver Vysor. Il se connecte également via adb et vous permet de contrôler votre appareil à l'aide de la souris. Contrairement à Vysor, le contenu de l'écran diffusé en continu est mis à jour très lentement (~ 1 image par seconde). L'avantage est qu'il n'y a pas besoin d'installer une application compagnon.

15
ns130291

Une autre façon juste pour votre information.

Utilisez un câble USB OTG et connectez-vous avec une souris USB, vous pouvez toucher l'écran en cliquant avec votre souris!

13
Rocky Chen

Les commandes ci-dessous fonctionnent à la fois lorsque l'écran est allumé et éteint

Pour verrouiller l'écran:

adb Shell input keyevent 82 && adb Shell input keyevent 26 && adb Shell input keyevent 26

Pour verrouiller l'écran et l'éteindre

adb Shell input keyevent 82 && adb Shell input keyevent 26

Pour déverrouiller l'écran sans passer

adb Shell input keyevent 82 && adb Shell input keyevent 66

Pour déverrouiller l'écran qui a réussi 1234

adb Shell input keyevent 82 && adb Shell input text 1234 && adb Shell input keyevent 66
12
Ilya Gazman

si le périphérique est verrouillé avec un écran noir, exécutez ce qui suit:

  1. adb Shell input keyevent 26 - ceci allume l'écran 
  2. adb Shell input keyevent 82 - cela déverrouillera et demandera une broche
  3. texte d'entrée du shell adb xxxx && adb Entrée du shell shell 66
8
Isaac Morris

Si vous aviez MyPhoneExplorer installé et connecté (vous n'êtes pas sûr que ce soit indispensable, c'est déjà ma configuration), vous pouvez l'utiliser pour contrôler l'écran avec votre souris d'ordinateur. Il se connecte via ADB, pour lequel votre câble USB normal est suffisant.

Une autre solution que j'ai trouvée qui fonctionne même sans redémarrage consiste à mettre à jour les tables dans settings.db et locksettings.db J'ai dû passer à la racine pour ouvrir le 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

Source qui m'a fait éditer mes tables

3
Anton Kaiser

J'aimerais partager mon chemin. Tout d'abord, j'ai eu Huawei Ascend P7 et mon écran tactile a cessé de manipuler le toucher. Aucune des solutions ci-dessus ne m'a permis de déverrouiller le téléphone. J'ai trouvé un moyen plus intelligent de le faire peut voir l'écran sur donc je pensais que mon affichage est de 1080 x 1920 px donc je devais simuler un dessin sur mon photoshop avec le clavier avec (x, y) afin que je puisse essayer à la place avec la commande input mouse tap.

 screenshot of simulation

Comme j'ai le verrouillage des touches comme vous pouvez le voir sur l'image, j'ai tout le (x, y) pour tous les numéros à l'écran pour simuler le toucher et déverrouiller mon écran et je dois sauvegarder mes données, donc si mon mot de passe est 123 j'ai fait toutes les commandes suivantes

adb Shell input mouse tap 100 1150
adb Shell input mouse tap 500 1150
adb Shell input mouse tap 900 1150

Et puis mon téléphone vient d'être déverrouillé, j'espère que cela a été utile.

1
AaoIi

J'avais trouvé un cas particulier où glisser (déverrouiller l'écran tactile de l'entrée ADB Shell ...) pour déverrouiller l'écran d'accueil ne fonctionne pas. Plus précisément pour Acer Z160 et Acer S57. Les téléphones appartiennent à l’histoire, mais ils doivent néanmoins être pris en compte par nous, développeurs. Ici est la source de code qui a résolu mon problème. J'avais créé mon application pour commencer avec l'appareil. et dans la fonction "onCreate", j'avais temporairement changé le type de verrou.

Aussi, juste au cas où google drive fait quelque chose dans le fichier Zip, je posterai des fragments de ce code ci-dessous.

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()
    }
}