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
设置>显示:这里可以设置自动休眠超时时间。
当设置为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"></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.深度配置
SpecialCharSequenceMgr.java
launcher:className=" com.google.android.youtube.HomeActivity"
ro.config.alarm_alert= Alarm_Classic.ogg \
ro.config.ringtone= Elves.mid
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等文件中的\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
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() 修改此处的prop_valueproperty_get("ro.product.manufacturer", prop_value, "unknown manufacturer"); string.set(prop_value); 39. 72 factory mode 字体变大问题
40. 72开关机动画
??? 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中; |
packages/apps/Provision/src/com/android/provision/DefaultActivity.java
在这个里面的oncreate方法里面添加需要处理第一次开机配置
45.系统启动默认值修改
如果想修改系统启动后加载的默认值