MoreLocale 2 not working on 4.2.2 without SU or “pm grant” from adb on computer

MoreLocale 2? you ask. It’s an app to set locale (language and country) on a android phone that doesn’t have it in the language list. Like, there’s no Swedish on a UK phone for example.

This is the maker of morelocale 2 says

“After 4.2 new Jelly Bean, The protection level definition of CHANGE_CONFIGURATION has been changed.
If you’re able to use development tools, you can grant the permission manually by ‘pm’ command.
If you have SuperUser privilege on your device. MoreLocale 2 could get the permission automatically.”

You really don’t need root for it, adb tool on computer will work just fine. You need a little skill to make it work, I excluded it the first time since I couldn’t get it to work (“adb devices” did it for it me). But, now it works just fine.

I will not go into just how to get adb and such onto your computer now, since that guide itself will be longer than this (will of course do a guide if there’s a need for it).

Android SDK can be found here

Important edit: I assume that you’re aware that you need “usb debugging” turned ON in phone or it’s just NOT going to work. New version of guide HERE.

Edit: to easy install ADB and Fastbook, check this

Of course you need to do this with phone hooked up to computer.

With a command line (on a windows computer) you type (I assume with Paths and such ok, or stand in the directory where “adb” can be found). Each command is followed by ENTER.

adb shell

this will set adb into shell mode, where you can enter commands directly to your phone

The prompt changes a bit, and you enter (careful with spelling and caps). Enter

pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION

The prompt will not show you much, just mirrors the last bit. That means it was successful, I do this with Morelocale 2 open on my phone. And then you can just change language to whatever you want, this grant stays even with a restart of the phone.

adb_shell

https://play.google.com/store/apps/details?id=jp.co.c_lis.ccl.morelocale&hl=sv

 

 

  • ExileSwede

    That is odd as I’m using MoreLocale2 to add Swedish on my UK-spec Android 4.2.2 HTC One as we speak. Even doublechecked after reading this. It might be that the app was in before the update, but I don’t have a clue.

    • http://www.droider.se/ TobbeDroider

      Yeah, done before the update: will work

  • Rafał Żółkiewicz

    Install MoreLocale to version 4.1.2
    Then update your phone to version 4.2.2
    Works fine

    • http://www.droider.se/ TobbeDroider

      Yeah, that will of course work since it doesn’t need that extra privilege in 4.1.2. But, after an hard reset or wanting to change language in 4.2.2 will fail

      • Jorge Lopes Vieira

        Does not work on Android 4.3 in Samsung Galaxy S3.
        I mean the locale can be changed, but the system is still in English language. What can I do for that? Please help! Thanks

        • http://www.droider.se/ TobbeDroider

          then there’s not much you can do, samsung isn’t known to be very user friendly. But, I thought that they would at least follow how android works. Apparently not. But, look around XDA and so on if there’s a fix for it.

  • Patrick Svensson

    It works without su, root or anything even if installed after the 4.2.2 upgrade.
    There is one extra step you must do though..

    When you open the program and try to switch locale, it will fail and give you 2 options, eighter to fix it by pm or su.

    What you need is to do the pm part.

    1. Turn on USB debugging (google if you don’t know how to)

    2. Connect your phone to your computer with the usb cable

    3. Download adb to your pc (you don’t need the full adb, I downloaded PoshADB and used the adb.exe file in that package)

    4. Open cmd, enter the folder where you have your adb.exe, then open adb with the command abd shell

    5. Run the command displayed in the app (i.e. “pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION”)
    No root or su is needed for this, but don’t use a terminal app or similar to do this, it won’t work.

    6. Try changeing locale again, it should work now, if not, just force close the app and restart it.

    • http://www.droider.se/ TobbeDroider

      Tried it, but it fails on the “pm grant” with me using adb (full package) on my computer. You have tried this on a One? And it works? Might have to update android sdk

      • Patrick Svensson

        Yep, tried it on a one.
        Didnt work trough the terminal, but when connected in usb debug mode and with the adb in poshadb, it worked like a charm. Did it myself yesterday :)

        • http://www.droider.se/ TobbeDroider

          Yeah, same here. But it failed with “pm”, could be that you need a certain version (and up) of the adb tool. Have no computer to test with for the moment

          • Patrick Svensson

            Didyouenter pm separately or the whole “pm grant…” as one row?

          • http://www.droider.se/ TobbeDroider

            I didn’t try very hard when I did, since I have no need for it myself. And when I do things for tutorials and such: tends to be more careful. Will look it up more careful when I’m around a computer again.

        • http://www.droider.se/ TobbeDroider

          now it worked, pm grant needs a connected target and sometimes you need to do a manual “adb devices” for it. Connected my brain this time.. :)

        • June

          Thank you so much. full adb was so heavy! So it was nice to download PoshADB. And it worked just fine! Worked on my Xperia Z1.

    • CharlesYang

      I does not work on Android 4.3 in AT&T Samsung Note3 with fully function.
      I mean the locale can be changed, but the system is still in English language. What can I do for that? Please help!! Many thanks…

      • http://www.droider.se/ TobbeDroider

        those things seems to be locked down pretty hard, samsung have started to do “stupid” things with their phones like region lock and all kinds of things. Haven’t tried on 4.3 device yet myself, but I think that it’s like some earlier phones where you only could set language to what’s on it already

    • Jafar

      Hey patrick,

      I need ur help.

      my phone is rooted and upgraded to kitkat rom( Pure Stock Android 4.2.2 OS for Spice Mi-515) but i got CHINESE system language instead of English. Could you please help me how to change or install system language to English?

      • Patrick Svensson

        sorry, but I don’t have that phone anymore so I can’t help you. :/

  • Friend

    THANK YOU SO MUCH. I spend about 4 hours to figure it out, but struggled with adb shell and the last command. Thanks it worked

  • Pingback: Guides and tips around HTC One | Droider.eu

  • Pingback: Minimal ADB and Fastboot installation | Droider.eu

  • joanna

    I tried to unlock my HTC one X with android 4.2.2 and it went great but when i tried to do the same with the other phone it didn’t. After put the command “pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION” the command windows says something like “pm remove-user:remove the uses with the griven USER_IDENTIPIER” and “deleting all data associated with the user”. Could someone help me with this?? i don’t have much idea about that kind of things..

    • http://www.droider.se/ TobbeDroider

      Be a little careful the this, haven’t seen that myself so I don’t know just why that showed up. But, I would try again , and restart computer and phone first. Google around a little on it. And be careful that you just enter the commands given here on it.

      • joanna

        I tried restartin computer and phone but still nothing:( i entered carefully the command given here but still it says “delecting all data associated with tha user”

  • Pingback: Don’t got the languages you want on your HTC One? | Droider.eu

  • James

    does it work even after next hard reset? or you have to do it again?

    • http://www.droider.se/ TobbeDroider

      Yeah, its of course gone after a factory reset as that kinda resets things..

  • Pingback: Anonymous

  • Udvardi Tamás

    Hi! Please help me! I have problem…

    • http://www.droider.se/ TobbeDroider

      your phone isn’t properly connected to the adb system (or not connected at all), is “usb debugging” enabled in phone?

      • Udvardi Tamás

        Yes, the usb debugging is enabled in my phone.

        • http://www.droider.se/ TobbeDroider

          just odd. I would do a “adb devices” just to see what’s connected.

          • Udvardi Tamás

            List of devices attached:

            emulator-5554 device
            434235……….. device

          • http://www.droider.se/ TobbeDroider

            that’s why: it connects to the emulator which doesn’t have those bits and simply fail. Either remove the emulator or learn how to direct to the correct device http://developer.android.com/tools/help/adb.html#directingcommands

          • Udvardi Tamás

            Thank you so much! Im done! :)

  • ulas

    problem ??

  • Alireza

    huawei y320 not work

  • SH

    Please Help me!

    I have followed the instructions above I have just done this,
    this appears
    pm enable [--user USER_ID] PACKAGE_OR_COMPONENT
    pm disable [--user USER_ID] PACKAGE_OR_COMPONENT
    pm disable-user [--user USER_ID] PACKAGE_OR_COMPONENT
    pm disable-until-used [--user USER_ID] PACKAGE_OR_COMPONENT

    pm grant PACKAGE PERMISSION
    pm revoke PACKAGE PERMISSION
    pm set-install-location [0/auto] [1/internal] [2/external]
    pm get-install-location
    pm set-permission-enforced PERMISSION [true|false]

    pm trim-caches DESIRED_FREE_SPACE
    pm create-user USER_NAME
    pm remove-user USER_ID
    pm get-max-users

    pm list packages: prints all packages, optionally only
    those whose package name contains the text in FILTER. Options:

    -f: see their associated file.
    -d: filter to only show disbled packages.
    -e: filter to only show enabled packages.
    -s: filter to only show system packages.
    -3: filter to only show third party packages.

    -i: see the installer for the packages.
    -u: also include uninstalled packages.

    pm list permission-groups: prints all known permission groups.

    pm list permissions: prints all known permissions, optionally only

    those in GROUP. Options:
    -g: organize by group.
    -f: print all information.
    -s: short summary.
    -d: only list dangerous permissions.
    -u: list only the permissions users will see.

    pm list instrumentation: use to list all test packages; optionally
    supply to list the test packages for a particular
    application. Options:
    -f: list the .apk file for the test package.

    pm list features: prints all features of the system.

    pm list users: prints all users on the system.

    pm path: print the path to the .apk of the given PACKAGE.

    pm install: installs a package to the system. Options:

    -l: install the package with FORWARD_LOCK.
    -r: reinstall an exisiting app, keeping its data.
    -t: allow test .apks to be installed.
    -i: specify the installer package name.
    -s: install package on sdcard.

    -f: install package on internal flash.
    -d: allow version code downgrade.

    pm uninstall: removes a package from the system. Options:
    -k: keep the data and cache directories around after package removal.

    pm clear: deletes all data associated with a package.

    pm enable, disable, disable-user, disable-until-used: these commands
    change the enabled state of a given package or component (written
    as “package/class”).

    pm grant, revoke: these commands either grant or revoke permissions
    to applications. Only optional permissions the application has
    declared can be granted or revoked.

    pm get-install-location: returns the current install location.

    0 [auto]: Let system decide the best location
    1 [internal]: Install on internal device storage
    2 [external]: Install on external media

    pm set-install-location: changes the default install location.

    NOTE: this is only intended for debugging; using this can cause
    applications to break and other undersireable behavior.
    0 [auto]: Let system decide the best location
    1 [internal]: Install on internal device storage

    2 [external]: Install on external media

    pm trim-caches: trim cache files to reach the given free space.

    pm create-user: create a new user with the given USER_NAME,
    printing the new user identifier of the user.

    pm remove-user: remove the user with the given USER_IDENTIFIER,
    deleting all data associated with that user
    shell@ha3g:/ $
    D:android-adb-tool>adb shell
    shell@ha3g:/ $ pm grant com.sightidea.locale android.permission.CHANGE_
    CONFIGURA

    TION
    droid.permission.CHANGE_CONFIGURATION <
    Bad argument: java.lang.IllegalArgumentException: Unknown package: com.sightidea
    .locale
    usage: pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FIL

    TER]
    pm list permission-groups
    pm list permissions [-g] [-f] [-d] [-u] [GROUP]
    pm list instrumentation [-f] [TARGET-PACKAGE]
    pm list features
    pm list libraries
    pm list users

    pm path PACKAGE
    pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f]
    [--algo --key --iv ]
    [--originating-uri ] [--referrer ] PATH

    pm uninstall [-k] PACKAGE
    pm clear [--user USER_ID] PACKAGE
    pm enable [--user USER_ID] PACKAGE_OR_COMPONENT
    pm disable [--user USER_ID] PACKAGE_OR_COMPONENT
    pm disable-user [--user USER_ID] PACKAGE_OR_COMPONENT

    pm disable-until-used [--user USER_ID] PACKAGE_OR_COMPONENT
    pm grant PACKAGE PERMISSION
    pm revoke PACKAGE PERMISSION
    pm set-install-location [0/auto] [1/internal] [2/external]
    pm get-install-location

    pm set-permission-enforced PERMISSION [true|false]
    pm trim-caches DESIRED_FREE_SPACE
    pm create-user USER_NAME
    pm remove-user USER_ID
    pm get-max-users

    pm list packages: prints all packages, optionally only

    those whose package name contains the text in FILTER. Options:
    -f: see their associated file.
    -d: filter to only show disbled packages.
    -e: filter to only show enabled packages.
    -s: filter to only show system packages.

    -3: filter to only show third party packages.
    -i: see the installer for the packages.
    -u: also include uninstalled packages.

    pm list permission-groups: prints all known permission groups.

    pm list permissions: prints all known permissions, optionally only

    those in GROUP. Options:
    -g: organize by group.
    -f: print all information.
    -s: short summary.
    -d: only list dangerous permissions.
    -u: list only the permissions users will see.

    pm list instrumentation: use to list all test packages; optionally
    supply to list the test packages for a particular
    application. Options:
    -f: list the .apk file for the test package.

    pm list features: prints all features of the system.

    pm list users: prints all users on the system.

    pm path: print the path to the .apk of the given PACKAGE.

    pm install: installs a package to the system. Options:

    -l: install the package with FORWARD_LOCK.
    -r: reinstall an exisiting app, keeping its data.
    -t: allow test .apks to be installed.
    -i: specify the installer package name.
    -s: install package on sdcard.

    -f: install package on internal flash.
    -d: allow version code downgrade.

    pm uninstall: removes a package from the system. Options:
    -k: keep the data and cache directories around after package removal.

    pm clear: deletes all data associated with a package.

    pm enable, disable, disable-user, disable-until-used: these commands
    change the enabled state of a given package or component (written
    as “package/class”).

    pm grant, revoke: these commands either grant or revoke permissions
    to applications. Only optional permissions the application has
    declared can be granted or revoked.

    pm get-install-location: returns the current install location.

    0 [auto]: Let system decide the best location
    1 [internal]: Install on internal device storage
    2 [external]: Install on external media

    pm set-install-location: changes the default install location.

    NOTE: this is only intended for debugging; using this can cause
    applications to break and other undersireable behavior.
    0 [auto]: Let system decide the best location
    1 [internal]: Install on internal device storage

    2 [external]: Install on external media

    pm trim-caches: trim cache files to reach the given free space.

    pm create-user: create a new user with the given USER_NAME,
    printing the new user identifier of the user.

    pm remove-user: remove the user with the given USER_IDENTIFIER,
    deleting all data associated with that user
    shell@ha3g:/ $
    D:android-adb-tool>adb shell
    shell@ha3g:/ $ pm grant com.sightidea.locale.proandroid.permission.CHANGE_CONFIG

    URATION
    oandroid.permission.CHANGE_CONFIGURATION <
    Error: no permission specified
    usage: pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FIL
    TER]

    pm list permission-groups
    pm list permissions [-g] [-f] [-d] [-u] [GROUP]
    pm list instrumentation [-f] [TARGET-PACKAGE]
    pm list features
    pm list libraries
    pm list users

    pm path PACKAGE
    pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f]
    [--algo --key --iv ]
    [--originating-uri ] [--referrer ] PATH

    pm uninstall [-k] PACKAGE
    pm clear [--user USER_ID] PACKAGE
    pm enable [--user USER_ID] PACKAGE_OR_COMPONENT
    pm disable [--user USER_ID] PACKAGE_OR_COMPONENT
    pm disable-user [--user USER_ID] PACKAGE_OR_COMPONENT

    pm disable-until-used [--user USER_ID] PACKAGE_OR_COMPONENT
    pm grant PACKAGE PERMISSION
    pm revoke PACKAGE PERMISSION
    pm set-install-location [0/auto] [1/internal] [2/external]
    pm get-install-location

    pm set-permission-enforced PERMISSION [true|false]
    pm trim-caches DESIRED_FREE_SPACE
    pm create-user USER_NAME
    pm remove-user USER_ID
    pm get-max-users

    pm list packages: prints all packages, optionally only

    those whose package name contains the text in FILTER. Options:
    -f: see their associated file.
    -d: filter to only show disbled packages.
    -e: filter to only show enabled packages.
    -s: filter to only show system packages.

    -3: filter to only show third party packages.
    -i: see the installer for the packages.
    -u: also include uninstalled packages.

    pm list permission-groups: prints all known permission groups.

    pm list permissions: prints all known permissions, optionally only

    those in GROUP. Options:
    -g: organize by group.
    -f: print all information.
    -s: short summary.
    -d: only list dangerous permissions.
    -u: list only the permissions users will see.

    pm list instrumentation: use to list all test packages; optionally
    supply to list the test packages for a particular
    application. Options:
    -f: list the .apk file for the test package.

    pm list features: prints all features of the system.

    pm list users: prints all users on the system.

    pm path: print the path to the .apk of the given PACKAGE.

    pm install: installs a package to the system. Options:

    -l: install the package with FORWARD_LOCK.
    -r: reinstall an exisiting app, keeping its data.
    -t: allow test .apks to be installed.
    -i: specify the installer package name.
    -s: install package on sdcard.

    -f: install package on internal flash.
    -d: allow version code downgrade.

    pm uninstall: removes a package from the system. Options:
    -k: keep the data and cache directories around after package removal.

    pm clear: deletes all data associated with a package.

    pm enable, disable, disable-user, disable-until-used: these commands
    change the enabled state of a given package or component (written
    as “package/class”).

    pm grant, revoke: these commands either grant or revoke permissions
    to applications. Only optional permissions the application has
    declared can be granted or revoked.

    pm get-install-location: returns the current install location.

    0 [auto]: Let system decide the best location
    1 [internal]: Install on internal device storage
    2 [external]: Install on external media

    pm set-install-location: changes the default install location.

    NOTE: this is only intended for debugging; using this can cause
    applications to break and other undersireable behavior.
    0 [auto]: Let system decide the best location
    1 [internal]: Install on internal device storage

    2 [external]: Install on external media

    pm trim-caches: trim cache files to reach the given free space.

    pm create-user: create a new user with the given USER_NAME,
    printing the new user identifier of the user.

    pm remove-user: remove the user with the given USER_IDENTIFIER,
    deleting all data associated with that user
    shell@ha3g:/ $

  • morelocal2

    is it possible to install hebrew lang on samsung galaxy note 3 using more local 2?
    how?

    • http://www.droider.se/ TobbeDroider

      Not sure about that at all, since I don’t know how the samsungs work with such things. Google around for samsung sites. It should work in theory, but I don’t know if that device supports such a thing. SInce it’s apparently region locked and so on

  • Morten Bo

    Hi

    I keep getting a “error: device not found” when running the “adb shell” command following your method despite having enabled USB debugging etc. I am not sure what I need to do more to get it working.

    The phone is an HTC ONE X

    Hope you can help since I am not really that techy and I am trying to get it to work on my girlfriends phone :)

  • Yahia

    Thank you very much it works very well.. very thankfull for your help..