Android系统定制源码修改 - MTK平台

                                     Android系统定制源码修改 -  MTK平台


 1.修改开机弹出欢迎使用SIM

     MTK工程/mediatek/packages/apps/Stk1/src/com/android/stk/StkAppService.java

       (\frameworks\base\packages\Keyguard\src\com\mediatek\keyguard\Telephony\KeyguardDialogManager.java)


       case DISPLAY_TEXT:

省略...

//显示SIM卡信息

launchTextDialog(slotId);

break;


2.关闭通知栏通能

\frameworks\base\core\java\android\app\NotificationManager.java


   /**
     * Post a notification to be shown in the status bar. If a notification with
     * the same id has already been posted by your application and has not yet been canceled, it
     * will be replaced by the updated information.
     *
     * @param id An identifier for this notification unique within your
     *        application.
     * @param notification A {@link Notification} object describing what to show the user. Must not
     *        be null.
     */
    public void notify(int id, Notification notification)
    {
   
boolean close=false;
    if(close)

   
{
          notify(null, id, notification);
   
}
     }


3.MTK 开机LOGO

Android内核开机LOGO:logomediatek/custom/common/uboot/logo

Android系统开机logo:/mediatek/custom/common/lk/logo

logo_folder:定义在..\mediatek\config\XXXX\ProjectConfig.mk中 BOOT_LOGO=wsvganl


4.Android frameworks去掉熄屏前先变暗的功能

设置>显示:这里可以设置自动休眠超时时间。

当设置为30s时,到24s左右屏幕会先变暗,告知用户屏幕快熄灭了,6s以后才会真正熄屏。


现在需要去掉这个功能,在PowerManagerService里可以看到:

    private int getScreenDimDurationLocked(int screenOffTimeout) {
        return Math.min(SCREEN_DIM_DURATION,
                (int)(screenOffTimeout * MAXIMUM_SCREEN_DIM_RATIO));
    }

30S是系统里最短的超时时间,也就是说其他screenOffTimeout乘以0.2是比6要大的,所以就不用考虑了。

要想去掉DIM这个Feature,直接把SCREEN_DIM_DURATION设为0,这样getScreenDimDurationLocked()的返回值也就是0,这样就不再有屏幕先变暗这个步骤了。

实测可行。

(取自:http://blog.csdn.net/zhoumushui/article/details/51443492)

5.调整Android的默认亮度

调整手机的默认亮度,我们只需要修改frameworks\base\packages\SettingsProvider\res\values\defaults.xml文件中的def_screen_brightness值。

如想把手机的默认亮度调整为90%,则

修改之前

   <integer name="def_screen_brightness">102</integer> 

修改之后

   <integer name="def_screen_brightness">230</integer> 

注意全亮是255。因此,255*90=29.5,对29.5取整就是230


 <!-- Default screen brightness, from 0 to 255.  102 is 40%. -->屏蔽掉下拉通知栏和状态栏


6.屏蔽掉下拉通知栏和状态栏

..\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBarView.java


    @Override
    public void addPanel(PanelView pv) {
        super.addPanel(pv);
//        if (pv.getId() == R.id.notification_panel) {
//            mNotificationPanel = pv;
//        } else if (pv.getId() == R.id.settings_panel){
//            mSettingsPanel = pv;
//        }
        pv.setRubberbandingEnabled(!mFullWidthNotifications);
    }


7.默认配置

1.gps 默认是打开的,有些产品需要默认关闭,主要是为了省电。

      修改:

               /frameworks/base/packages/SettingsProvider/res/values/defaults.xml

             将:

                  <string name="def_location_providers_allowed" tanslatable="false">gps</string>

                 改为:

                 <string name="def_location_providers_allowed" tanslatable="false"></string>

2.修改系统默认时间。

     修改

          rtc-mt6573.h  cust_rtc.h 这是四个文件,将里面的时间改为自己需要的时间。(这个是我在mtk6573的代码上看到这么修改的,具体在android原生态代码,我还没用看)

3.修改设备默认名字。

      修改:

         build/tools/buildinfo.sh 在这个文件里面修改,具体修改那些项,我就不在这了说了。

4.修改系统默认时区及默认语言

       修改:

           build/tools/buildinfo.sh在这个文件的最后一行的前面添加以下代码:

                     echo "persist.sys.language=zh"
                     echo "persist.sys.country=CN"
                     echo "persist.sys.localevar="
                     echo "persist.sys.timezone=Asia/Shanghai"
                     echo "ro.product.locale.language=zh"
                     echo "ro.product.locale.region=CN"

 

5.修改屏幕默认休眠时间:

   

在frameworks/base/packages/SettingsProvider/res/values/default.xml


会看到下面的代码:

<integer name="def_screen_off_timeout">60000</integer>

数字的单位是毫秒,可以修改为 10分钟,15分钟,或30分钟。


6.默认关闭usb debug

在packages/apps/Provision/src/com/android/provision/DefaultActivity.java

在这个里面的oncreate方法里面添加:

 Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 0);  /0代表关闭,1代表打开



7.mtk修改默认字体大小 

在frameworks/base/core/java/android/content/res/Configuration.java

 public void setToDefaults()里面的

fontScale = 1.10f;    1代表默认的大小,1.10f代表大,1.15代表超大


8.深度配置

1. *#06#等关键码判断文件

SpecialCharSequenceMgr.java

2.音效
ControlPanelEffect.java
3.版本号修改
bulid/core/build_id.mk
4.默认墙纸修改
framework/base/core/res/res/ drawable-nodpi/default_wallpaer.jpg
5.其他墙纸修改
package/apps/Launcher2/res/drawable-nodpi/ wallpaper_01.jpg
6.音频参数调整
mediatek/custom/commin/cgen/inc/audio/mt6575_phone/audio_volume_custom_default.h
mediatek/custom/commin/cgen/inc/audio_volume_custom_default.h

7.机器型号直接修改
build/tools/buildinfo.sh
#ro.product.model = 公司内部手机名
#ro.product.name = 手机正式名称
#ro.product.device = 采用的设备名称
#ro.product.board = 采用的处理器
#ro.build.product = 旧代码,等同于设备名称
#ro.custom.build.version = 编译版本号

8.公司基本命令修改
target_build.sh   usr_build.sh 注意修改相关机型名

9.主make文件常用配置
     a.  语言
          mediatek/config/ pd715/ProjectConfig.mk
          #MTK_PRODUCT_LOCALES=zh_CN en_US es_ES zh_TW  #什么语言放在前面就是默认什么语言
      b.输入法
          DEFAULT_INPUT_METHOD=com.sohu.inputmethod.sogou.SogouIME
          MTK_LATINIME_SUPPORT = yes#开启yes 搜狗输入法不起作用,开启no搜狗输入法起作用.
          MTK_INPUTMETHOD_PINYINIME_APP = yes#用搜狗输入法,一般no
       c.通话3秒自动屏灭
          CUSTOM_NO_INCALL_SCREEN_OFF = yes
       d.全局宏定义
          AUTO_ADD_GLOBAL_DEFINE_BY_NAME
       e.开关机logo定义目录
          BOOT_LOGO =  pda700
        f.来电归属地
           MTK_PHONE_NUMBER_GEODESCRIPTION = yes
         e.重力传感器
                MTK_ACCELEROMETER_SUPPORT = yes

10.常用缺省配置文件
          framework/base/packages/SettingsProvider/res/values/defaults.xml
          a.屏灭时间  def_screen_off_timeout    60000(60s)  -1(永不)
          b.缺省时间格式 time_12_24
          c.背光等级 def_screen_brightness
          d: 屏幕切换 def_accelerometer_rotation

11.字体,字库更换
framworks/base/data/fonts/ DroidSansFasllback.ttf

12.如果现实有误,除字库外需要注意的地方是安卓字型相关解析
external\harfbuzz\src\ harfbuzz-myanmar.c

13.蓝牙一般修改
     a .去掉wireless input  
          删除 <category android:name="android.intent.category.LAUNCHER" />
     b.蓝牙设备默认名称修改
          framworks\base\core\jni\Android_bluetooth_common.h
          #define BTMTK_ANDROID_DEFAULT_LOCAL_NAME "ANDROID BT"
      c. buluetooth HostName(蓝牙改名)
          mediateck/config/common/custom.conf
          bluetooth.HostName =  VENERA 907       
  
14.桌面默认缺省修改
          package/apps/Launcher2/res/ xml_sw600dp/default_workspace.xml
           launcher:packageName=" com.google.android.youtube
           launcher:className=" com.google.android.youtube.HomeActivity"

15.内存容量大小
           mediatek/build/tools/ptgen/ MT6575/partition_table_MT6575.xls

16.Music参数位置修改
           packages/apps/MusicFX/src/com/musicfx/ControlPanelEffect.java

17.铃声修改
          frameworks/base/data/sounds/ AudioPackage2.xml
          指定拷贝方式

18.全局系统配置
            mediatek/config/ pd700/system.prop
        a.默认时区修改
            persist.sys.timezone = Asia/Shanghai
         b.设置向导默认关闭
             ro.setupwizard.mode=DISABLED
         c.屏幕分辨率
             ro.sf.lcd_density=160

19.开关机动画
         verdor/mediatek/ pd700/artifacts/out/target/product/ pd700/system/media/bootanimation.zip
          verdor/mediatek/ pd700/artifacts/out/target/product/ pd700/system/media/shutanimation.zip

注意关机动画和关机铃声需要在 system.pro 加入 ro.operator.optr=CUST

20.开关机铃声
        verdor/mediatek/ pd700/artifacts/out/target/product/ pd700/system/media/bootaudio.mp3
        verdor/mediatek/ pd700/artifacts/out/target/product/ pd700/system/media/shutaudio.mp3
      并确认frameworks/base/core/java/com/android/internal/app/ShutdownThread.java 中 283行 mShutOffAnimation 的初始值为true

21.缺省提示/闹钟/ring铃声
     build/target/product/core.mk
   ro.config.notification_sound= Proxima.ogg \ 
    ro.config.alarm_alert= Alarm_Classic.ogg \ 
    ro.config.ringtone= Elves.mid

22.工程指令修改等
   mediatek/packages/apps/EngineerMode/src/com/mediatek/engineermode/EngineerModeRecevier.java
   mediatek/packages/apps/FactoryMode/src/com/mediatek/factorymode/FactorymodeReceiver.java

23.输入法布局相关修改
    package/inputmethods/LatinIME/java/res/下
     
24.WAP相关
     a.wap主页不显示导航以及yahoobookmark
          packages/apps/Bcore\mt_devs.c
开启宏 CONFIG_MTK_USB_UNIQUE_SERIALrowser/src/com/android/browser/BrowserFeatureOption.java

25.uboot logo
          mediatek\custom\common\lk\logo\ pda700_wsvga\pda700_wsvga_kernel.bmp
(./mk r dr  >> system.img) 
          mediatek\custom\common\lk\logo\ pda700_wsvga\pda700_wsvga_uboot.bmp
(./mk uboot >> logo.bin) 

26.开机默认时间
framework/base/services/java/com/android/server/NetworkTimeUpdateService.java //自动校时修改
cust_rtc.h 
rtc-mt6575.h(跟平台对应文件)文件中 

27.手机唯一SN显示
     mediatek\platform\mt6577\kernel\

28.默认字体大小
     frameworks\base\core\java\android\content\res\Configuration.java
     public void setToDefaults()
     fontScale = 1.10f; 1代表默认的大小,1.10f代表大,1.15代表超大// 不一定,高分辨率0.9是normal
     在/system/build.prop文件里面加入


     ro.sys.def_font_scale = ?(值可以设置成如:100, 130)

     PS:ro.sys.def_font_scale = 130,即fontScale = 1.3时,相应的字体大小为“大”。 

Settings中系统的字体大小,在/packages/apps/Settings/res/values/arrays.xml 或者 values-sw600dp等文件中的  
arrays.xml ”entryvalues_font_size”这个tag中分别有定义对应的数值,  
Small:0.9    
Normal:1.0  
Large:1.1  
Extra Large:1.15   

600dp不同

29.plmn
   mediatek\frameworks\base\telephony\etc\spn-conf.xml

30.时间格式修改
frameworks\base\core\res\res\values\donottranslate-cldr.xml 
<string name="numeric_date_format">M/d/yyyy</string> //不同语言不同目录,不同格式 

31.默认音量修改
frameworks\base\media\java\android \media\AudioManager.java
修改DEFAULT_STREAM_VOLUME 数组 

32.pa修改( modem 
mediatek\custom\common\modem下目录
ProjectConfig.mk内指定目录 如 CUSTOM_MODEM=pd775_hspa

33. 修改移动数据开关默认状态

\frameworks\base\services\java\com\android\server\ConnectivityService.java
  public boolean getMobileDataEnabled() {
        enforceAccessPermission();
        boolean retVal = Settings.Secure.getInt(mContext.getContentResolver(),
              //  Settings.Secure.MOBILE_DATA, 1) == 1;//数据开关默认打开
              Settings.Secure.MOBILE_DATA, 0) == 1; //add by boardcon 数据开关默认关闭
        if (DBG) Slog.d(TAG, "getMobileDataEnabled returning " + retVal);
        return retVal;
    } 

mtk只需要修改make,MTK_DEFAULT_DATA_OFF=yes

34.分区修改

  A 修改分区文件mediatek\build\tools\ptgen\partition_table.xls

  B 修改分区头文件mediatek\custom\project\common\partition_define.h


35. 默认照片修改,驱动层修改无效?原因未知
packages\apps\Camera\src\com\android\camera\CameraSetting.java
initialCameraPictureSize 函数中
修改为
if(candidate.equals("640x480"))
   {
                 SharedPreferences.Editor editor = ComboPreferences
                      .get(context).edit();
                editor.putString(KEY_PICTURE_SIZE, candidate);
                editor.apply();
                return;
    } 
 
36.logo
mediatek\custom\common\uboot\logo\ 

37.版本号时间自动按时间生成方法
echo "ro.custom.build.version=P730-G-tab-4G-`date +%Y%m%d-%H:%M`" 

38. android 如何修改MTP在PC端显示的制造商信息
1. 修改build/tools/buildinfo.sh中的 ro.product.manufacturer
2.frameworks\av\media\mtp\MtpServer.cpp 的doGetDeviceInfo()
property_get("ro.product.manufacturer", prop_value, "unknown manufacturer");
string.set(prop_value);
修改此处的prop_value

39. 72 factory mode 字体变大问题

此现象只在6572平板项目中,非平板是正常的。。
修改了font.mk中
ifeq ($(LCM_WIDTH),800)
        LOCAL_CFLAGS += -DFEATURE_FTM_FONT_24x44
改成
          LOCAL_CFLAGS += -DFEATURE_FTM_FONT_16x28
即可,如果想方便平板和非平板的维护,加个平板控制宏就好 

40. 72开关机动画
mediatek/operator/OP02/prebuilt/bootanim/bootanimation

  ??

41.修改按键唤醒配置
mediatek/config/m709/mtk-kpd.kl

42. exif
照片信息里面加入的头文件信息
extractExifInfo 

43.默认动态壁纸
framework/base/core/res/res/values/config.xml
原来:
<string name="default_wallpaper_component">@null</string>  
现在:
<string name="default_wallpaper_component" translatable="false">com.android.wallpaper/com.android.wallpaper.grass.GrassWallpaper</string>    
如:
com.android.wallpaper 在 AndroidManifest 文件中的 packagename,
com.android.wallpaper.grass.GrassWallpaper 在 AndroidManifest 文件中的 service name
需要注意的是:静态的图片壁纸和动态壁纸是两个不同的系统,加载的时候是完全两套机制,
静态图片通过 launcher 里面的一个 xml 文件配置来管理系统默认静态壁纸,
动态壁纸则是通过 intent 机制向系统搜寻所有匹配 Activity,
所以,这里的默认值为 null,而不是那个系统默认静态壁纸的地址,系统是读 config.xml 文件的设置。
若为 null 才继续查找静态壁纸配置内容。设置之后没有效果的话,恢复下出厂设置即可。
另外将需要用到第三方动态壁纸,提前预置到sytem/app中; 
44. 第一次开机会走的文件(恢复出厂设置也会走)
packages/apps/Provision/src/com/android/provision/DefaultActivity.java
在这个里面的oncreate方法里面添加需要处理第一次开机配置

45.系统启动默认值修改
如果想修改系统启动后加载的默认值

修改SettingsProvider默认值,Settings能够配置Android系统的各种设置,这些设置的默认值都是由frameworks中的SettingsProvider从数据库中读取的,那么第一次开机的时候这些数据都是从哪儿来的呢?

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

这个文件就是用来存储Android系统的默认设置

例如:

<integername="def_screen_off_timeout">600000</integer>设置关屏超时时间的默认值

<integername="def_screen_brightness">102</integer>设置亮度的默认值

<boolname="def_install_non_market_apps">false</bool>设置是否允许安装非Market应用程序的默认值

如果想定义defaults.xml中没有的,在这里添加后,需修改

frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java,加入自己的存储代码。




发布了109 篇原创文章 · 获赞 84 · 访问量 74万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览