MTK 定製修改(一)
阿新 • • 發佈:2019-01-02
以下內容均為在MTK android 7.0上修改
1.修改預設桌布
a.在/frameworks/base/core/res/res/drawable-nodpi中新增自定義的桌布custum_default_wallpaper.png(名稱自定義)
b.在/frameworks/base/core/res/res/values/symbols.xml中把名稱新增上
<java-symbol type="drawable" name="custum_default_wallpaper" />
c.修改/frameworks/base/core/java/android/app/WallpaperManager.java
public static InputStream openDefaultWallpaper(Context context, @SetWallpaperFlags int which) { final String whichProp; final int defaultResId; if (which == FLAG_LOCK) { /* Factory-default lock wallpapers are not yet supported whichProp = PROP_LOCK_WALLPAPER; defaultResId = com.android.internal.R.drawable.default_lock_wallpaper; */ //pang add start 20180107 whichProp = PROP_LOCK_WALLPAPER; defaultResId = com.android.internal.R.drawable.custum_default_wallpaper ; //pang end return null; } else { whichProp = PROP_WALLPAPER; //pang temp defaultResId = com.android.internal.R.drawable.custum_default_wallpaper ; //defaultResId = com.android.internal.R.drawable.default_wallpaper; } ...... } private InputStream openDefaultWallpaperRes(Context context, @SetWallpaperFlags int which) { IWallpaperPlugin mWallpaperPlugin = null; InputStream is = null; /// M: Init mWallpaperPlugin for Operators @{ try { mWallpaperPlugin = (IWallpaperPlugin) MPlugin.createInstance( IWallpaperPlugin.class.getName(), context); } catch (Exception e) { Log.e(TAG, "Catch IWallpaperPlugin exception: ", e); } /// @} if (mWallpaperPlugin == null || mWallpaperPlugin.getPluginResources(context) == null) { is = context.getResources().openRawResource( com.android.internal.R.drawable.custum_default_wallpaper); //com.android.internal.R.drawable.default_wallpaper); } else { Log.d(TAG, "get the wallpaper image from the plug-in"); is = mWallpaperPlugin.getPluginResources(context).openRawResource( mWallpaperPlugin.getPluginDefaultImage()); } return is; }
2.修改預設中文輸入法,我用的是訊飛輸入法
a.在frameworks/base/core/res/res/values/string.xml中新增
string name="default_inputmethod">com.iflytek.inputmethod/.FlyIME</string>
b.在/frameworks/base/core/res/res/values/symbols.xml中新增
<java-symbol type="string" name="default_inputmethod" />
c.在frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java中
private void loadSecureSettings(SQLiteDatabase db) { ....... loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, com.android.internal.R.string.default_inputmethod); loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD, com.android.internal.R.string.default_inputmethod); ...... }
d.預設啟用所有輸入法,/frameworks/base/core/java/com/android/internal/inputmethod/InputMethoeUtils.java
d.在vendor/mediatek/proprietary/packages/3rd-party/中建立xunfei資料夾,在裡面放置xunfei.apk, Android.mk和armeabi資料夾, 其中armeabie中放置的是訊飛輸入法的32位so庫,如下public void enableAllIMEsIfThereIsNoEnabledIME() { //pang temp 20180107 //if (TextUtils.isEmpty(getEnabledInputMethodsStr())) { if (!TextUtils.isEmpty(getEnabledInputMethodsStr())) { StringBuilder sb = new StringBuilder(); final int N = mMethodList.size(); for (int i = 0; i < N; i++) { InputMethodInfo imi = mMethodList.get(i); Slog.i(TAG, "Adding: " + imi.getId()); if (i > 0) sb.append(':'); sb.append(imi.getId()); } putEnabledInputMethodsStr(sb.toString()); } }
libmsc-v8.so
libsmartaiwrite-jni-v16.so
libsmartaiwrite-jni-v17.so
libsmartaiwrite-jni-v18.so
libsmartaiwrite-jni-v19.so
Android.mk的內容
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := xunfei
LOCAL_MODULE_OWNER := mtk
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_DEX_PREOPT := false
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
LOCAL_MODULE_PATH := $(TARGET_OUT)/app
LOCAL_PREBUILT_JNI_LIBS :=\
armeabi/libmsc-v8.so \
armeabi/libsmartaiwrite-jni-v16.so \
armeabi/libsmartaiwrite-jni-v17.so \
armeabi/libsmartaiwrite-jni-v18.so \
armeabi/libsmartaiwrite-jni-v19.so \
armeabi/libvadLib-v5.so
LOCAL_MULTILIB := 32
include $(BUILD_PREBUILT)
e.在/device/mediatek/common/device.mk中新增
PRODUCT_PACKAGES += xunfei