MTK 定制修改(一)

以下内容均为在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

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());
            }
        }
d.在vendor/mediatek/proprietary/packages/3rd-party/中创建xunfei文件夹,在里面放置xunfei.apk, Android.mk和armeabi文件夹, 其中armeabie中放置的是讯飞输入法的32位so库,如下

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











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值