7 votes

Utiliser ADB pour changer le verrouillage de l'écran

Je cherche un moyen de changer le type de verrouillage de l'écran de diapositive à mot de passe, et de définir le mot de passe via la ligne de commande adb. J'ai un appareil avec la configuration que je veux, et un autre qui a le verrouillage par glissement. Je suis presque sûr que cela peut être accompli via sqlite3 "copier-coller" de certains champs, mais je ne sais pas quels champs, et comment le faire. Je suis ouvert à presque toutes les idées, sauf celle d'utiliser la fonction adb shell input des commandes pour y parvenir. Signification - Je peux/savoir comment utiliser/utiliser actuellement des commandes input swipe input text input tap pour transformer le déverrouillage par glissement en déverrouillage par mot de passe.

edit1 : clarifié adb shell input et oui, mon téléphone est enraciné.

edit2 : liens pertinents :
Comment changer le type d'écran de verrouillage
Cryptage de passe sur Android

Selon le post du premier lien, il devrait être facile de changer le type d'écran de verrouillage, le seul problème est que je ne trouve pas le champ lockscreen.password_type dans la base de données à laquelle ils font référence. A-t-il été déplacé dans la version 4.3 ? Après avoir lu l'article dans le deuxième lien, mon idée était d'utiliser le numéro de sel stocké dans la base de données pour hacher un nouveau mot de passe en utilisant le sel spécifique au périphérique, et remplacer le mot de passe existant (le cas échéant). J'essaie toujours de comprendre comment faire cela.

16voto

Rk215 Tech Points 256

Depuis Android 8.0 Oreo vous pouvez changer l'écran de verrouillage en utilisant les commandes adb suivantes

adb shell

athene_f:/ $ locksettings
usage: 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 verify [--old OLD_CREDENTIAL]
   locksettings set-disabled DISABLED
   locksettings get-disabled

flags:
   --user USER_ID: specify the user, default value is current user
  1. locksettings set-pin : définit un PIN
  2. locksettings set-password : définit un mot de passe
  3. locksettings clear : efface la créance de déverrouillage
  4. locksettings verify : vérifie l'accréditation et déverrouille l'utilisateur
  5. locksettings set-disabled : définit si l'écran de verrouillage doit être désactivé
  6. locksettings get-disabled : récupère si l'écran de verrouillage est désactivé

Et si vous voulez supprimer le mot de passe, il suffit d'utiliser le code ci-dessous :

$ locksettings clear --old old_password_put_here

Voici le lien de référence : L'âme d'Android - Comment modifier ou supprimer le motif, le code PIN ou le mot de passe de l'écran de verrouillage via ADB sous Android 8.0 Oreo ?

J'ai testé sur un appareil Android Oreo. Il fonctionne très bien.

4voto

Andy Brudtkuhl Points 1714

Il n'existe pas de fonctionnalité intégrée permettant de définir le mot de passe via la ligne de commande, que ce soit à partir d'un shell sur l'appareil ou à partir de l'application adb . Vous ne pouvez même pas y parvenir en collant le mot de passe enregistré dans le fichier de paramètres sécurisés à partir d'un autre appareil. Le mot de passe n'est pas stocké en texte brut, mais plutôt sous forme de code cryptographique. dièse du mot de passe est stocké. Ce hachage est généré en utilisant le mot de passe et un sel valeur : un nombre aléatoire généré une fois sur l'appareil.

Le hachage du mot de passe empêche quelqu'un de voler votre téléphone et de trouver le mot de passe. C'est important non seulement pour protéger le mot de passe lui-même (au cas où vous utiliseriez le même mot de passe pour d'autres choses), mais aussi parce que le mot de passe est utilisé pour chiffrer la mémoire de clés de l'appareil et dans le cadre de la fonction de chiffrement complet de l'appareil. Le salage du mot de passe à l'aide d'un sel spécifique à l'appareil garantit qu'un attaquant ne peut pas utiliser un mot de passe de type table arc-en-ciel pour déterminer le mot de passe. (Une table arc-en-ciel est une liste de tous les mots de passe hachés possibles, que l'on interroge pour trouver le mot de passe original à partir du mot de passe haché. Cette technique permet de casser des implémentations naïves de mots de passe, comme celles de Windows 95, en moins d'une seconde à l'aide d'un ordinateur de bureau normal).

En outre, le code qui met à jour le mot de passe stocké lorsque vous le modifiez via l'interface graphique a d'autres effets secondaires. Comme je l'ai mentionné, le mot de passe est utilisé pour chiffrer la clé de stockage de l'appareil, qui peut être utilisée par toutes les applications de l'appareil pour stocker les informations d'identification en toute sécurité. Si vous changez le mot de passe enregistré sans mettre à jour la base de données des clés, les informations d'identification stockées seront perdues. En outre, si un chiffrement complet de l'appareil est utilisé, le fait de modifier le mot de passe enregistré sans mettre à jour la clé de chiffrement de l'appareil rendrait tout le stockage inaccessible.

Pour obtenir la fonctionnalité que vous souhaitez, le plus simple serait de patcher une ROM personnalisée pour exporter la fonctionnalité que l'application paramètres utilise pour changer le mot de passe, et ajouter un programme en ligne de commande qui peut changer le mot de passe de la même manière. Il pourrait même être possible de pirater une application qui peut faire cela en utilisant la réflexion pour avoir accès aux fonctions non exportées, mais l'application aurait toujours besoin de Root, et elle serait spécifique à la ROM (et peut-être même à la version de la ROM) sur l'appareil.

Le code correspondant est le suivant ici si vous êtes intéressé.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X