1. 程式人生 > >[RK3399][Android7.1] 除錯筆記 --- OTA diff升級輸入法異常

[RK3399][Android7.1] 除錯筆記 --- OTA diff升級輸入法異常

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