[RK3399][Android7.1] 调试笔记 --- OTA diff升级输入法异常

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kris_fei/article/details/83904316

Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83

现象:

之前因为版权的原因替换了输入法。请参考:[RK3399][Android7.1] 调试笔记 —谷歌拼音替换搜狗输入法
但是再做OTA升级的时候发现输入法升级异常。


原因:

做OTA diff包升级不会清除data分区,而默认的输入法配置是放在
/data分区的,导致系统起来找不到而使用默认的英文输入法。


解决方法:

每次开机重新加载/data/system/users/0/settings_secure.xml,这样里面默认的输入法就会被更新。

--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -1858,10 +1858,11 @@ public class SettingsProvider extends ContentProvider {
             // Every user has secure settings and if no file we need to migrate.
             final int secureKey = makeKey(SETTINGS_TYPE_SECURE, userId);
             File secureFile = getSettingsFile(secureKey);
+            /*
             if (secureFile.exists()) {
                 return;
             }
-
+                       */
             DatabaseHelper dbHelper = new DatabaseHelper(getContext(), userId);
             SQLiteDatabase database = dbHelper.getWritableDatabase();

参考:

Android系统APP之SettingsProvider

猜你喜欢

转载自blog.csdn.net/kris_fei/article/details/83904316