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

    @Overridepublic 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,加入自己的存储代码。

Android系统定制源码修改 - MTK平台相关推荐

  1. Android视频直播源码开发直播平台、点播播放器哪家强?

    Android视频直播源码开发直播平台.点播播放器哪家强? 最近在项目中要加入视频直播和点播功能,那么问题来了,我需要一个播放器来播放视频流,那该如何选择呢?除了原生的VideoView(VideoV ...

  2. Android 系统(112)---Android系统读取 CPU温度(MTK平台)

    Android系统读取 CPU温度(MTK平台) 一.[MTK 平台]读取温度命令 1.查看类型是否是 CPU adb shell "cat /sys/class/thermal/therm ...

  3. 安卓系统AOSP源码修改入门

    先整理 后学习 再总结 编译 版本查询 设备代号 驱动下载 精简编译教程 索尼编译巨详细教程 源码阅读 anroid studio 导入aosp 源码 源码结构 源码修改 内置证书抓包 默认打开ADB ...

  4. Android系统读取 CPU温度(MTK平台)

    一.[MTK 平台]读取温度命令 1.查看类型是否是 CPU adb shell "cat /sys/class/thermal/thermal_zone[编号]/type" 2. ...

  5. 信息安全实训系统php源码,实训平台

    "知白网络安全演练系统"是由启明星辰为培养创新网络攻防对抗人才,跟踪网络空间攻防行为研究热点,孵化网络攻防高新项目,培养具有国际化视野的网络安全人才和实战专家而自主研发的一套全面. ...

  6. android gif快手 源码,Android-JNI开发系列《十一》实践-利用Android C源码实现GIF图片的播放...

    人间观察 人往往都是多面性的,一个人的时候是一个样子,一群人的时候是另一个样子. 声明 此篇文章只为记录和学习JNI以及了解GIF的解码原理.借鉴了网上的有关gif文章介绍和代码.如果是自己学习,建议 ...

  7. Android源码修改(自动获取usb权限)基于Android5.1定制版系统

    自动获取usb权限 这篇文章参考了这个得到的解决方案 http://blog.csdn.net/hubbybob1/article/details/50263925 这个博主已经写得很清楚啦,但是还有 ...

  8. android打开volte代码,Android8.1 源码修改之插入SIM卡默认启用Volte功能

    前言 公用电话产品,插入SIM卡后要求自动打开Volte功能,即插即用,用完拔卡就走 实现 第一步 开关对应的代码 通过打印日志和全局查找,源码位置 vendor/mediatek/proprieta ...

  9. Android Dialer,Mms,Contacts源码修改笔记,移动端混合开发经验

    ②在AndroidManifest.xml中修改相应Activity的theme <activity android:name=".HomeActivity" android ...

最新文章

  1. 极致进化-敏捷进化型企业的未来畅想
  2. 《JAVA编程那点事儿》读书笔记(二)——类和对象
  3. morlet小波matlab代码,morlet小波matlab程序
  4. js实现php中sleep()延时的功能
  5. 现代浏览器的工作原理
  6. 如何获取网站icon
  7. 反射和内省_单例设计模式–内省和最佳实践
  8. java resultset 映射到实例_[Java]ResultSet的用法与实例
  9. 阿里巴巴飞天大数据架构体系与Hadoop生态系统
  10. Android 须知2019流行的框架库及开发语言
  11. MPEG文件中什么是GOP
  12. 动态更新 HTML 内容 —— AJAX
  13. 【find】Linux中find常见用法示例
  14. Python多进程与多线程编程
  15. android测试云模拟器,基于Android模拟器的调研
  16. # kubeadm ——k8S新节点加入集群-notready 问题解决
  17. Python之ARP协议探测MAC地址
  18. 台式计算机中的CPU指的是,电脑硬件认识之什么是电脑的CPU(cpu详细介绍)
  19. DELL笔记本BIOS密码破解
  20. 终于解决了hao123锁定主页的问题~

热门文章

  1. 跟着团子学SAP:LTMC进阶教程-用LTMOM调整标准模版(增加WBS层级字段示例)
  2. 浅谈分布式学习(SGD)中提高速率的方法
  3. VBA脚本实现痕迹保留、手写签名、电子印章的插件
  4. 查看当前使用的数据库的版本
  5. typora下载与教程
  6. matlab灰度图像分割标记,matlab – 分割灰度图像
  7. 用来测试的在线小视频url地址
  8. 全球及中国熔融碳酸盐燃料电池行业前景展望及市场全景调研报告2022-2028年版
  9. Flash Builder 入门
  10. orange's学习--第七章:l处理退格换行