本文档以SC806-CN-00为例(msm8909平台,Android 5.1),说明如何预置百度输入法APK,且设置为系统默认输入法。
先去百度网站下载一个百度输入法的APK文件,这里我们修改下文件名为 baidu-shurufa.apk。
下载网址:https://shouji.baidu.com/software/26443738.html
apk文件解压之后的结构如下图:
打开 lib\armeabi-v7a 文件夹,可以看到很多so库文件。
另外写一个预编译的Android.mk文件,需要注意的是增加 LOCAL_PREBUILT_JNI_LIBS 项,
包含所有的so文件,具体见下面附件:
https://uploader.shimo.im/f/ohGrY0dvBl4VRwjW.mk?attname=Android.mk&download
在vendor/fibo/common/下,新建一个目录 Baidu/,把上面提到的两个文件 baidu-shurufa.apk / Android.mk文件和 lib 文件夹 放在该目录下。
可以先单独编译一下该模块:
source build/envsetup.sh
lunch n // n为编译选项
mmm vendor/fibo/common/Baidu/
编译之后生成的APK文件:
out/target/product/la0920/system/app/baidu-shurufa/baidu-shurufa.apk
把编译之后生成的APK文件,用adb推送到系统/system/app目录下,然后重启系统。
重启之后能看到我们可爱的百度输入法。
那么接下来修改下系统编译的Makefile文件,把百度输入法这个模块加入编译。
修改 vendor/fibo/la0920/la0920.mk,增加百度输入法模块名称,这里要注意是增加模块名称 “baidu-shurufa”,不是增加文件夹名称 "Baidu"
https://uploader.shimo.im/f/lymRwT9qpD4UXMYn.patch?attname=la0920.mk.patch&download
然后编译system
make systemimage -j8
烧录system.img,重启系统,可以看到百度输入法已经预置到系统里面。
不过在默认情况下,百度输入法还处于未勾选/未切换的状态。
下面继续革命,把百度输入法设置为默认输入法。
修改 frameworks/base/packages/SettingsProvider/res/values/customize.xml,增加配置项默认输入法为com.baidu.input/.ImeService
不同的输入法名称对应如下,不过除了百度输入法其他的我没验证过。
百度:com.baidu.input/.ImeService
讯飞:com.iflytek.inputmethod/.FlyIME
腾讯:com.tencent.qqpinyin/.QQPYInputMethodService
谷歌:com.google.android.inputmethod.pinyin/.PinyinIME
搜狗:com.sohu.inputmethod.sogou/.SogouIME
触宝:com.cootek.smartinput5/.TouchPalIME
修改 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java,加载默认输入法。这里把原来的逻辑判断都删掉了,直接加载。
修改frameworks/base/core/java/com/Android/internal/inputmethod/InputMethodUtils.java,使能系统中所有输入法
以上三处patch文件,见下面附件:
https://uploader.shimo.im/f/HMHrR647ttUMLmWN.patch?attname=customize.xml.patch&download
https://uploader.shimo.im/f/iiDtRk6Glm8txh0S.patch?attname=DatabaseHelper.java.patch&download
https://uploader.shimo.im/f/WfQajJ9hmVMkxYv8.patch?attname=InputMethodUtils.java.patch&download
重新编译system,烧录,开机。可以看到百度输入法已经默认打开并使用。
https://uploader.shimo.im/f/sljtcCNwv846fxRq.mp4?attname=Fibocom-SC806-2019-10-10-17-50-52-1.mp4&download