impossibledreams / android-language-settings-app

Simple language settings app for Android devices, useful for enabling other languages on the Kindle Fire
Other
4 stars 6 forks source link

Kindle Fire (second generation) latest update disables almost all languages #4

Open yakovsh opened 12 years ago

yakovsh commented 12 years ago

When the new Kindle Fire 2nd generation and its sibling Fire HD tablets came out with Android 4.0 (Ice Cream Sandwich), the app still worked. However, following a late October 2012 update, only 6 languages are available and not the full list available in Android.

The reason why my app worked originally is because it simply accessed the existing language control panel that shipped with the Kindle’s OS. Being that it was built from the stock Android code, it included all the languages by default.

HOWEVER, in the latest Kindle Fire 2nd gen update, Amazon repackaged the Latin keyboard shipped with Android to only include 6 languages and enabled the keyboard control panel (for the insanely curious, the file is called LatinIME.apk and it is located in /system/app – inside the file there is a /resources/xml folder which contains a file called subtypes.xml defining which languages are available).

What is interesting is that along with exposing the control panel for enabling languages, Amazon also enabled the panel for adding additional keyboards, known as IMEs or Input Methods in Android. This would allow a user to install a repackaged APK file containing the stock Android keyboard, switch keyboards and get acccess to languages. HOWEVER, if seems that it is hard coded to only allow Amazon’s keyboard and no other keyboard can be enabled.

I also tried manually enabled the keyboard by writing to the secure settings, but the application must be a system app in order for that to happen. The funny thing is that changing the locale for the user interface does not need special system permissions while adding and enabling IMEs is. The reasoning behind it is that IMes are full fledged programs that can steal data if they are malicious, while locale settings are just settings.

As of now Swype would be the only way to get other languages unless your are willing to root

dvdmend commented 10 years ago

Main

nokgunner commented 10 years ago

Good