Device not allowing the use of non-English for the screenlock password I am facing very unclear behaviour on Motorola devices w.r.t. setting its password in non-english language (Hebrew).
Let me explain scenario:

Settings -&gt; Language &amp; input -&gt; Google Keyboard -&gt; Input Language -&gt; under 'Active input methods' -&gt; Hebrew checked.

Now, Move back to Settings -&gt; Screen Lock -&gt; password -&gt; choose your password -&gt; Password contains illegal characters. (After typing few Hebrew words, so unable to set password)


Settings -&gt; Language &amp; input -&gt; Language -&gt; Set 'Hebrew' as phone language.

Now (All in Hebrew language), move back to Settings -&gt; Screen Lock -&gt; password -&gt; choose your password -&gt; Password contains illegal characters. (After typing few Hebrew words, so unable to set password)



I am not getting why it's showing me this behaviour. In fact, after changing phone language, I should be allowed to set password based on my desired language.
In fact, after changing phone language, I should be allowed to set password based on my desired language.


Your assumption here is wrong, at least for stock Android.

Based from AOSP source code that handles the password input for lock screen, ChooseLockPassword.java, inside validatePassword(), here is a snippet that will show the "illegal character" message:

// allow non control Latin-1 characters only
if (c &lt; 32 || c &gt; 127) {
    return getString(R.string.lockpassword_illegal_character);
}


It means that the input only allows characters with code between 32 and 127 (exclusive). They are A-Z, a-z, 0-9 and basic punctuations.


taken from http://www.asciitable.com/

Other than those characters, Android won't accept the password and notify the user there is an illegal character.