2 votes

Existe-t-il un moyen de convertir un verrouillage par motif en un code PIN numérique ?

Je viens de crypter mon Moto X (Gen 1) (KitKat 4.4.4) en utilisant l'option de cryptage par défaut dans le menu Paramètres > Sécurité. Une fois le processus de cryptage terminé, il me demande "Tapez le mot de passe pour décrypter le stockage". Seulement, il y a un problème : il ne m'a jamais demandé de mot de passe.

Il semble que je sois pas le seul qui ont vécu cela. J'ai essayé mon mot de passe Google au moins 3 fois, et, comme cette autre pauvre âme, je n'ai pas été capable de trouver un moyen de faire correspondre mon verrouillage par motif à un code PIN, qui pourrait être ce qu'Android a utilisé pour le cryptage.

Pour les mappings, j'ai essayé un clavier téléphonique standard :

1 2 3
4 5 6
7 8 9

et un pavé numérique standard de clavier :

7 8 9
4 5 6
1 2 3

et une hypothèse basée sur la façon dont un développeur pourrait le faire :

0 1 2
3 4 5
6 7 8

Vraisemblablement, mais pas nécessairement, Android stocke ce modèle sous forme de chaîne ou de nombre d'une manière ou d'une autre. Étant donné un certain modèle de déverrouillage, comment puis-je trouver la chaîne ou le nombre qui représente ce modèle ?


Aux modérateurs : Je suis d'accord pour supprimer cette question si elle n'est pas sur le sujet. Je pense que la question aurait été sur le sujet si la réponse avait résolu mon problème. Je ne sais pas comment vous voyez ça.

2voto

Logical Fallacy Points 141

J'ai téléchargé la source Android et j'ai trouvé la réponse. La supposition sauvage s'avère être la bonne. Voici la cartographie :

0 1 2
3 4 5
6 7 8

Si votre modèle va du haut de la gauche au haut de la droite (0->1->2) puis du bas de la droite (2->5->8), la version en chaîne du mot de passe est "01258".

La source de cet élément provient de LockPatternUtils dans le paquet com.Android.internal.widget :

/**
 * Serialize a pattern.
 * @param pattern The pattern.
 * @return The pattern in string form.
 */
public static String patternToString(List<LockPatternView.Cell> pattern) {
    if (pattern == null) {
        return "";
    }
    final int patternSize = pattern.size();

    byte[] res = new byte[patternSize];
    for (int i = 0; i < patternSize; i++) {
        LockPatternView.Cell cell = pattern.get(i);
        res[i] = (byte) (cell.getRow() * 3 + cell.getColumn());
    }
    return new String(res);
}

où les lignes et les colonnes sont toutes deux {0,1,2}.

Cependant, comme je l'ai dit dans ma question, j'ai essayé ce mappage avec mon modèle, et cela ne fonctionne pas pour débloquer mon cryptage. Cela s'est avéré être une impasse, mais j'espère que cette réponse sera utile à d'autres personnes ayant un problème similaire. (Notez à nouveau que l'autre personne qui avait ce problème a également essayé de trouver le mappage du verrouillage du motif au code PIN, mais la réponse n'existait pas).

0 votes

Bonne info, merci +1, si vous avez la bonne réponse, merci d'éditer votre réponse pour le reste d'entre nous qui se débattent avec ce problème.

1voto

linux-guy Points 11

Je réalise que ce fil de discussion est vraiment vieux, mais j'ai utilisé cette info avec beaucoup de succès ! C'est la grille correcte pour traduire les serrures à motif 3x3 en une épingle :

1 2 3
4 5 6
7 8 9

Cela fonctionne sur mon Oneplus 3 exécutant Resurrection Remix 6.0.1. Pour faire court, j'ai activé le mot de passe de décryptage au démarrage, mais au redémarrage, il m'a donné l'option de mot de passe. Cette grille a fonctionné comme un charme !

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