方案笔记一

1.修改手机插入电脑显示内存,文件路径frameworks/av/media/mtp/MtpStorage.cpp

uint64_t MtpStorage::getMaxCapacity() {
    if (mMaxCapacity == 0) {
        struct statfs   stat;
        if (statfs(getPath(), &stat))
            return -1;
            //HXY032 PC show 8G begin
            uint64_t cap = (uint64_t)stat.f_blocks;
            if (cap > 1024*1024 && cap < 8*1024*1024/4){
			    cap = 8*1024*1024/4;
			}
			//HXY032 PC show 8G end
        mMaxCapacity = cap * (uint64_t)stat.f_bsize;
    }
    return mMaxCapacity;
}

2.默认打开流量节省程序,文件路径alps/vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml

<bool name="def_restrict_background_data">true</bool>

3.Android MTK 修改蓝牙地址随机生成

下载软件后,每台机器的蓝牙地址是一样的,导致自己的机器均无法配对,蓝牙地址需要改成随机生成各(文件路径可能不一样)

mediatek\external\bluetooth\driver\combo\radiomod.c

mediatek\external\bluetooth\driver\standalone\radiomod.c

static BtStatus GORMcmd_HCC_Set_Local_BD_Addr(void)

......

#if def DEV_VERSION

         GetRandomValue(btinit->bt_nvram.fields.addr);

      #endif

   //修改这个定义的宏变量 当前文件中所有用到的地方

#if1//def DEV_VERSION

         GetRandomValue(btinit->bt_nvram.fields.addr);

      #endif


3.打开视频从列表过滤掉google浏览器

frameworks/base/core/java/com/android/internal/app/ResolverListController.java

            if (!found) {//remove chrome
				if(!newInfo.activityInfo.packageName.equals("com.android.chrome")) {
		            final ComponentName name = new ComponentName(
		                    newInfo.activityInfo.packageName, newInfo.activityInfo.name);
		            final ResolverActivity.ResolvedComponentInfo rci =
		                    new ResolverActivity.ResolvedComponentInfo(name, intent, newInfo);
		            rci.setPinned(isComponentPinned(name));
		            into.add(rci);
				}
            }

 

4.修改2个图库gms不过的

frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java

         // Gallery2
+        /*
         PackageParser.Package galleryPackages = getPackage("com.android.gallery3d");
         if (galleryPackages != null
                 && doesPackageSupportRuntimePermissions(galleryPackages)) {
             grantRuntimePermissions(galleryPackages, STORAGE_PERMISSIONS, userId);
-        }
+        }*/

5.替换成谷歌音乐后,智能唤醒中关于系统音乐的功能都要去掉

(1)vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/xunhu_defaults.xml
<string name="default_m_gesture_action">"6;"</string>
改成
<string name="default_m_gesture_action">"3;Play Music;com.google.android.music;com.android.music.activitymanagement.TopLevelActivity"</string>
(2)teksun/packages/apps/SmartWakeUp/res/values/arrays.xml
<string-array name="function_items">
	<item>@string/dial_number_function</item>
	<item>@string/open_sms_application_function</item>
	<item>@string/open_application_function</item>
	<item>@string/unlock_screen_function</item>
	<item>@string/bright_screen_function</item>
	<item>@string/control_music_function</item>
	<item>@string/play_last_song_function</item>
	<item>@string/play_next_song_function</item>
</string-array>
改成
<string-array name="function_items">
	<item>@string/dial_number_function</item>
	<item>@string/open_sms_application_function</item>
	<item>@string/open_application_function</item>
	<item>@string/unlock_screen_function</item>
	<item>@string/bright_screen_function</item>
</string-array>
(3)teksun/packages/apps/SmartWakeUp/res/values/configs.xml
<bool name="left_gesture_visible">true</bool>
<bool name="right_gesture_visible">true</bool>
<bool name="left_gesture_enabled_select_function">true</bool>
<bool name="right_gesture_enabled_select_function">true</bool>
改成
<bool name="left_gesture_visible">false</bool>
<bool name="right_gesture_visible">false</bool>
<bool name="left_gesture_enabled_select_function">false</bool>
<bool name="right_gesture_enabled_select_function">false</bool>

6.修改相册详情中的型号与制造商

vendor/mediatek/proprietary/packages/apps/Gallery2/src/com/android/gallery3d/data/MediaDetails.java如下新增内容

if (key == MediaDetails.INDEX_FLASH) {
	MediaDetails.FlashState state = new MediaDetails.FlashState(
			Integer.valueOf(value.toString()));
	details.addDetail(key, state);
} else {
	//add start
	if(key == MediaDetails.INDEX_MAKE) {
		value = "制造商名称";
	} else if(key == MediaDetails.INDEX_MODEL) {
		value = "型号名称";
	}
	//add end
	details.addDetail(key, value);
}

7、内置可删除应用

方法一(不通用,自己公司的)
teksun/prebuilt/build/prebuilt_app.mk改TEKSUN_OPERATOR_APP+="app名称"
teksun/prebuilt/apps/app名称/app名称.apk
该方法内置能在alps/out/target/product/项目名/obj/APPS下生成“app名称_intermediates”文件
方法二(拷贝方法)
teksun/packages/apps/innerapk/app名称/app名称.apk
teksun/packages/apps/innerapk/Android.mk(内容如下)
#include $(all-subdir-makefiles)
LOCAL_PATH := $(call my-dir)
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir -p $(ANDROID_PRODUCT_OUT)/vendor/operator/app/app名称/)
LOCAL_POST_PROCESS_COMMAND := $(shell cp -r  $(LOCAL_PATH)/app名称/app名称.apk $(ANDROID_PRODUCT_OUT)/vendor/operator/app/app名称/)
注:如出现打开应用后闪退,可换另一方法试试
方法三(自己写Mk方式) apk文件和mk文件都放同一个位置,下面是Android.mk写法
teksun/packages/apps/TIMMUSIC/Android.mk

+#This file is created automatically, please do not modify!!!
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+#设置app名称
+LOCAL_MODULE := TIMMUSIC
+#设置app路径
+LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
+#该模块在所有版本都编译 user eng userdebug
+LOCAL_MODULE_TAGS := optional
+#指定文件类型,apk文件用APPS, 并且 会检查 是否是apk文件,动态库so文件用SHARED_LIBRARIES ,bin文件用EXECUTABLES,其他文件 用ETC
+LOCAL_MODULE_CLASS := APPS
+#
+LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
+#签名方式,如果是platform,代表签名成系统软件, 如果还是PRESIGNED,表示用的是apk原本的签名。
+LOCAL_CERTIFICATE := PRESIGNED
+#将apk编进“/system/priv-app/目录”,如果为false,或者不加这句话,就会编进“/system/app” 目录, 二者区别在于前者的权限要高于后者
+#LOCAL_PRIVILEGED_MODULE := false
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/vendor/operator/app
+include $(BUILD_PREBUILT)

8、新增壁纸

增加一张壁纸为例
vendor/mediatek/proprietary/packages/apps/WallpaperPicker/res/drawable-nodpi/wallpaper_02.png
vendor/mediatek/proprietary/packages/apps/WallpaperPicker/res/drawable-nodpi/wallpaper_02_small.jpg(分辨率213x189)
vendor/mediatek/proprietary/packages/apps/WallpaperPicker/res/values-nodpi/wallpapers.xml改成如下
<string-array name="wallpapers" translatable="false">
	<item>wallpaper_02</item>
</string-array>

9.默认壁纸

6739平台:替换device/mediatek/common/overlay/ago/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg或frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg
6580平台:替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png 或替换device/mediatek/common/overlay/ago/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg

10.修改system--multiple users--add user,添加完然后删除用户,手机会一直卡在一个界面

vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java

            CollapsedStatusBarFragment statusBarFragment =
                             (CollapsedStatusBarFragment) fragment;
                     statusBarFragment.initNotificationIconArea(mNotificationIconAreaController);
+				///hxy:add by hefengjie at 20190517{{&&
+				///Description:system--multiple users--add user,添加完然后删除用户,手机会一直卡在一个界面
+                    PhoneStatusBarView oldStatusBarView = mStatusBarView; //MTK add
+				///&&}}
                     mStatusBarView = (PhoneStatusBarView) fragment.getView();
                     mStatusBarView.setBar(this);
                     mStatusBarView.setPanel(mNotificationPanel);
                     mStatusBarView.setScrimController(mScrimController);
                     mStatusBarView.setBouncerShowing(mBouncerShowing);
+				///hxy:add by hefengjie at 20190517{{&&
+				///Description:system--multiple users--add user,添加完然后删除用户,手机会一直卡在一个界面
+                    if (oldStatusBarView != null) {
+                        float fraction = oldStatusBarView.getExpansionFraction();
+                        boolean expanded = oldStatusBarView.isExpanded();
+                        mStatusBarView.panelExpansionChanged(fraction, expanded);
+                    }
+				///&&}}
                     if (mHeadsUpAppearanceController != null) {
                         // This view is being recreated, let's destroy the old one
                         mHeadsUpAppearanceController.destroy();

11.需要人脸解锁后直接进入待机界面

vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java

       for (int i = size - 1; i >= 0; i--) {
             try {
                 mKeyguardStateCallbacks.get(i).onTrustedChanged(trusted);
+                ///人脸解锁后直接进入待机界面 add by xxf 2019-05-08{{&&
+                if (trusted) {
+					handleKeyguardDone();
+				}
+				///&&}}
             } catch (RemoteException e) {
                 Slog.w(TAG, "Failed to call notifyTrustedChangedLocked", e);
                 if (e instanceof DeadObjectException) {

12. selinux权限报错 avc

device/mediatek/sepolicy/basic/non_plat/system_app.te

 allow system_app aee_exp_data_file:file r_file_perms;
 allow system_app aee_exp_data_file:dir r_dir_perms;
 allow system_app md_monitor:unix_stream_socket connectto;
+
+allow system_app sys_auxiliarycamera_parameter_file:file read;
+allow system_app sys_auxiliarycamera_parameter_file:file open;
+allow system_app sys_auxiliarycamera_brightness_file:file read;
+allow system_app sys_auxiliarycamera_brightness_file:file open;

13.  P版本设置-关于手机里面 修改菜单位置

vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/my_device_info.xml,改order

	<!-- Description: 设置-关于手机添加运行内存和手机存储显示 -->
         <Preference 
                android:key="phone_ram_info"
-	       android:order="52"
+	       android:order="42"
                style="?android:preferenceInformationStyle"
                android:title="@string/phone_ram_info_title"
                android:summary="@string/phone_ram_info_summary"/>
 			
 	<Preference 
                android:key="phone_rom_info"
-	       android:order="53"
+	       android:order="42"
                style="?android:preferenceInformationStyle"
                android:title="@string/phone_rom_info_title"
                android:summary="@string/phone_rom_info_summary"/>
 	<!-- &&}} -->
 
-</PreferenceScreen>

14.指纹解锁失败添加震动提示

vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java

import com.android.systemui.keyguard.KeyguardViewMediator;
 import com.android.systemui.keyguard.ScreenLifecycle;
 import com.android.systemui.keyguard.WakefulnessLifecycle;
-
+import android.os.Vibrator;
 import java.io.PrintWriter;
 
 /**
@@ -43,7 +43,7 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
     private static final boolean DEBUG_FP_WAKELOCK = KeyguardConstants.DEBUG_FP_WAKELOCK;
     private static final long FINGERPRINT_WAKELOCK_TIMEOUT_MS = 15 * 1000;
     private static final String FINGERPRINT_WAKE_LOCK_NAME = "wake-and-unlock wakelock";
-
+	private Vibrator mVibrator;
     /**
      * Mode in which we don't need to wake up the device when we get a fingerprint.
      */
@@ -129,6 +129,7 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
         mScrimController = scrimController;
         mStatusBar = statusBar;
         mUnlockMethodCache = unlockMethodCache;
+		mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
     }
 
     public void setStatusBarKeyguardViewManager(
@@ -345,6 +346,8 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
 
     @Override
     public void onFingerprintAuthFailed() {
+		Log.i(TAG, "wdh   onFingerprintAuthFailed  vibrate");
+		mVibrator.vibrate(300);
         cleanup();
     }

15.连接wifi或者数据显示上下行

vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml

     <bool name="config_enableNotificationShadeDrag">true</bool>
 
     <!-- Whether to show activity indicators in the status bar -->
-    <bool name="config_showActivity">false</bool>
+    <bool name="config_showActivity">true</bool>
 
     <!-- Whether or not the button to clear all notifications will be shown. -->
     <bool name="config_enableNotificationsClearAll">true</bool>

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值