android预装输入法

该文档基于Android7.1,其它版本类似。

1。安装对应的输入法进行正常的设置
首先在平台上安装对应的输入法,在设置中设置为启用,进入设置->输入法->虚拟键盘->管理键盘。

如果目前有多个的话需要将输入法拖动置顶。即在虚拟键盘中将输入法拉置顶部

2。获取相应的配置
root权限下

cat /data/system/users/0/settings_secure.xml

定位到以下两个节点

<setting id="60" name="enabled_input_methods" value="com.sohu.inputmethod.sogouoem/.SogouIME" package="com.android.settings" />
<setting id="53" name="default_input_method" value="com.sohu.inputmethod.sogouoem/.SogouIME" package="android" />

例如示例中安装的是搜狗输入法enabled_input_methods为设置输入法顶部的位置,default_input_method为管理键盘中的启用状态,启用状态有多个以英文字符“:”分割。你可以根据您的需求启用多个或者只保留一个。

3。将设置配置到预装设置中
编辑frameworks/base/packages/SettingsProvider/res/values/defaults.xml定位到以下两个节点,如果没有进行添加即可

<string name="config_default_input_method" translatable="false">com.sohu.inputmethod.sogouoem/.SogouIME</string>
<string name="config_enable_input_methods" translatable="false">com.sohu.inputmethod.sogouoem/.SogouIME</string>

其中config_default_input_method与default_input_method对应,config_enable_input_methods与enabled_input_methods对应,从/data/system/users/0/settings_secure.xml找寻到的复制过来即可。

4。提取相关依赖库
将apk修改拓展名使用解压软件解压得到lib/armeabi 文件夹

5.在安卓源码目录创建对编译模块目录列如

vendor/rockchip/common/apps/SougoIME

SougoIME目录内文件结构如下

Android.mk
SougoIME.apk
lib/armeabi/libkpencore_v52.so

其中lib/armeabi/*为之前解压出来的文件所有依赖库,SougoIME.apk为你预装输入法的apk.
Android.mk内容如下

#SougoIME
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := SougoIME
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_PREBUILT_JNI_LIBS := \
	lib/armeabi/libkpencore_v52.so 
include $(BUILD_PREBUILT)

6.最后在把该模块添加到上级的Android文件中如vendor/rockchip/common/apps/apps.mk PRODUCT_PACKAGES 节点添加SougoIME

PRODUCT_PACKAGES += \
    xxx \
	yyy\
	SougoIME

其中xxx跟yyy为原来就存在的模块,你只需要将SougoIME添加到最后即可
最后进行编译,擦除flash后烧录,或者烧录之后恢复出厂设置即可,原因是之前的设置数据不会重置

发表回复

CAPTCHAis initialing...