insmod /nand.ko
出固件
1.查看是否有3G上网
路径:android_xx\out\target\product\crane-xx\system\etc\ppp
方法:
call-pppd文件是否有权限。
2.预装APK
(1)、预装系统APK
路径:android_xx\device\softwinner\crane-xx\apk_start
对应out路径:
android_xx\out\target\product\crane-xx\system\app
方法:把需要安装的APK放到apk_start文件夹下,不要有中文名和空格。
(2)、预装系统非系统APK
路径:android_xx\device\softwinner\crane-xx\apk
对应out路径
android_xx\out\target\product\crane-xx\system\preinstall
方法:把需要安装的APK放到apk文件夹下,不要有中文名和空格。
3.删除系统APK
路径:
(1)、SDK2.3中\android_xx\device\softwinner\crane-xx
方法:
Mkfs.sh文件mkimg_system()的方法中rm -rf app/加上需要删除的系统apk
(2)、SDK4.0中\android_xx\device\softwinner\crane-xx
方法:
Package.sh文件中
#!/bin/bash
rm $OUT/system/app/xx.apk
make systemimage-nodeps(需要加这一句,不然无用)
4.修改设备信息
路径:
\android_xx\device\softwinner\crane-xx
方法:
crane_xx.mk文件中
(1)PRODUCT_PROPERTY_OVERRIDES += \ro.product.firmware=2.0.4
修改数字即可修改固件版本。
(2)PRODUCT_MODEL := A10
修改等号后面即可修改设备型号。
init.sun4i.rc文件中
(3)format_userdata A10 (SKD2.3) format_userdata /dev/block/nandi A10(SDK4.0)
修改(SDK2.3)format_userdata后面的信息即可修改falsh盘符
修改(SDK2.3)format_userdata/dev/block/nandi后面的信息即可修改falsh盘符
路径:\android_xx\out\target\product\crane-xx\system
build.prop文件中
(4)ro.build.display.id=crane_chip-eng 4.0.1 ITL41D eng.xinwu.20111230.115415 test-keys
修改“=”后面的信息即修改版本号。
5、连接显示修改
sys_config1..fex中
[usb_feature]
vendor_id = 0x18D1
mass_storage_id = 0x0001
adb_id = 0x0002
manufacturer_name = "USB Developer"
product_name = "Android" //豌豆荚显示名字
serial_number = "20080411" //豌豆荚显示名字
[msc_feature]
vendor_name = "USB 2.0" //电脑显示驱动
product_name = "USB Flash Driver" //电脑显示驱动
release = 100
luns = 2
6.修改默认壁纸
(1)SDK2.3 路径:\android2.3\frameworks\base\core\res\res\drawable
(2)SDK4.0 路径:android4.0\frameworks\base\core\res\res\drawable-large-nodpi和
drawable-sw600dp-xhdpi
方法:把需要设为壁纸的图片放到此路径下,文件命名为:default_wallpaper.jpg
7.桌面widget、快捷方式和Hotseat
SDK2.3路径:
android2.3\device\softwinner\crane-common\overlay\packages\apps\Launcher2\res\xml
SDK4.0路径:
android4.0\packages\apps\Launcher2\res\xml
方法:default_workspace.xml中
(1)、widget
launcher:packageName="com.android.settings" //应用的包名 launcher:className="com.android.settings.widget.SettingsAppWidgetProvider" //应用的类名 launcher:screen="1" //第几屏 分为5屏(0,1,2,3,4)主屏为第二屏 launcher:x="0" 屏x坐标 (0,5) launcher:y="3" 屏y坐标 (0.,4) launcher:spanX="4" //widget占用的x格数 launcher:spanY="1" /> //widget占用的y格数 (2)、快捷方式 launcher:packageName="com.android.gallery3d" launcher:className="com.android.gallery3d.app.Gallery" launcher:screen="3" launcher:x="1" launcher:y="3" /> 参数意义同widget (3) Hotseat (SDK2.3上和SDK4.0小分辨率屏上) launcher:packageName="com.android.browser" launcher:className="com.android.browser.BrowserActivity" launcher:container="-101" launcher:screen="4"(0,1,3,4) screen=2 为所有应用程序占的屏 launcher:x="4" (0,1,3,4) x=2 为所有应用程序坐标 launcher:y="0" /> container的值为desktop时显示在桌面上,值为bottombar是显示在hotseat上。 参考网址:http://wenku.baidu.com/view/c513fb25a5e9856a5612602a.html 8.按键设置 使用adb进入shell命令 输入getevent 然后按键获得键值(为16进制)转换为10进制 路径:\android_xx\out\target\product\crane-xx\system\usr\keylayout 方法:修改文件sun4i-keyboard.kl中key后面的值 路径:\android_xx\device\softwinner\crane-xx 方法:修改文件sun4i-keyboard.kl中key后面的值 常用的键值有: key 139 VOLUME_DOWN WAKE //音量减键 key 217 VOLUME_UP WAKE //音量加键 key 102 HOME WAKE //Home键 key 115 BACK WAKE //返回键 key 114 MENU WAKE_DROPPED //菜单键 9.修改屏保默认时间 SDK2.3路径: android_xx\device\softwinner\crane-common\overlay\frameworks\base\packages\SettingsProvider\res\values SDK4.0路径: frameworks\base\packages\SettingsProvider\res\values 方法:defaults.xml中 修改18000000的值即可 10.修改屏默认亮度 SDK2.3路径: android_xx\device\softwinner\crane-common\overlay\frameworks\base\packages\SettingsProvider\res\values SDK4.0路径: frameworks\base\packages\SettingsProvider\res\values 方法:defaults.xml中 修改204的值即可。 11.修改浏览器默认网址 SDK2.3路径: \android2.3 \device\softwinner\crane-common\overlay\packages\apps\Browser\res\values SDK4.0路径: packages\apps\Browser\res\values 方法:strings.xml文件中 http://www.google.com/webhp?client={CID}&source=android-home 注意加上http://。 12.修改应用背景(适用于SDK2.3) 路径:android2.3\packages\apps\Launcher2\src\com\android\launcher2\AllApps2D.java 方法:onFinishInflate文件中,setBackgroundResource(R.drawable.app_back); 在packages\apps\Launcher2\res\drawable文件中放一张图片名称为app_back的图片即可(图片格式为jpg最好,png也行)。 13.设置Android默认壁纸为动态壁纸 路径:android4.0\frameworks\base\core\res\res 方法:config.xml文件中 将其修改为对应的live wallpaper的启动component即可,如要把默认壁纸设置为2.1自带的galaxy,这样写即可: 这里的com.Android.wallpaper/com.android.wallpaper.galaxy.GalaxyWallpaper是动态壁纸的service的名字。 14.设置默认输入法 路径:frameworks/base/core/res/res/values/config.xml 添加一个属性: 路径: frameworks/base/services/java/com/android/server/InputMethodManagerService.java 的方法buildInputMethodListLocked() 里添加: ? ? String defaultIme = Settings.Secure.getString(mContext .getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); //add by bluesky if ( defaultIme == null ) { final Resources res = mContext.getResources(); try { //frameworks/base/core/res/res/values/config.xml String myIME = res.getString( com.android.internal.R.string.config_default_input_method ); if ( myIME != null && myIME.length() > 0 ) { Settings.Secure.putString( mContext.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD, myIME ); } } catch ( Exception e ) { } } 参考网考:http://hi.baidu.com/wishwingliao/blog/item/65a2d03f7dde8dd17d1e71ec.html 或者: frameworks/base/services/java/com/android/server/InputMethodManagerService.java 的方法buildInputMethodListLocked() 里添加: ?? static final String DEFAULT_IME_ID = "com.guobi.gbime/.GBIme"; String defaultIme = Settings.Secure.getString(mContext??????????????? .getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);??? ??? // set default ime as gbime??? ??? if (defaultIme == null) {??? ??? ??? Settings.Secure.putString(mContext.getContentResolver(),??????????????????? Settings.Secure.DEFAULT_INPUT_METHOD, DEFAULT_IME_ID);??? ??? }??????? defaultIme = Settings.Secure.getString(mContext??????????????? .getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); 以下只在4.0上测试过。 15.修改壁纸 路径:android4.0\packages\apps\Launcher2\res\drawable-sw600dp-nodpi中 方法:添加一张需要为壁纸的图片像素尽量要大如1920x1280命名为wallpaper_xx.jpg 同时把这张图压缩成大概213x189像素的图片命名为wallpaper_xx_small.jpg 还需在路径:android4.0\packages\apps\Launcher2\res\values-sw600dp中 方法:wallpapers.xml中添加 16.修改bootlogo 路径:lichee\tools\pack\chips\sun4i\wboot\bootfs\linux 方法:替换linux.bmp图片即可,如不要bootlogo则在linux.ini中logo_show = 1 改为0 17.去掉超清播放器->将照片设置为->联系人照片 路径:android4.0\packages\apps\Contacts\AndroidManifest.xml 方法:找到去掉即可。 18.(1)去掉音乐->菜单->用作铃声 路径:android4.0\packages\apps\Music\src\com\android\music\MediaPlaybackActivity.java 方法:找到menu.add(1, USE_AS_RINGTONE, 0, R.string.ringtone_menu_short) .setIcon(R.drawable.ic_menu_set_as_ringtone);注释掉即可。 (2)去掉音乐->长触任意歌曲弹出菜单->用作手机铃声 路径:android4.0\packages\apps\Music\src\com\android\music\TrackBrowserActivity.java +(655)行 方法:注释掉menu.add(0, USE_AS_RINGTONE, 0, R.string.ringtone_menu); 19.去掉搜素->点击左边搜素图标->选择可搜索项->联系人 路径:android4.0\packages\apps\Contacts\AndroidManifest.xml 方法:找到 20.编译内核驱动。 提示让你选择的时候,应该选择m(编译模块);y(编译到内核),n(不编译); 没有编译的时候如果想在编译可以cd linux-3.0中然后输入make menuconfig ARCH=arm 将你要选择编译的驱动前加上m,然后在重新编译内核。 21.增加系统最大的音量 Android的音量调节是通过软件来实现的,为此更改:frameworks/base/media/java/android/media/AudioService.java如下: 55 private int[] MAX_STREAM_VOLUME = newint[] { 156 5, // STREAM_VOICE_CALL 157 7, // STREAM_SYSTEM 158 7, // STREAM_RING 159 10, // STREAM_MUSIC 160 7, // STREAM_ALARM 161 7, // STREAM_NOTIFICATION 162 15, // STREAM_BLUETOOTH_SCO 163 7, // STREAM_SYSTEM_ENFORCED 164 15, // STREAM_DTMF 165 10 // 22.添加公司名称 路径:android4.0\packages\apps\Settings\res\xml\device_info_settings.xml 方法: 添加 style="?android:preferenceInformationStyle" android:title="@string/company_name" android:summary="@string/device_info_company_name"/> 路径:android4.0\packages\apps\Settings\res\values\strings.xml 方法:添加英文名称: 路径:android4.0\packages\apps\Settings\res\values-zh-rCN\strings.xml 方法:添加中文名称: 23.修改相机的默认曝光值 路径:android4.0\packages\apps\Camera\src\com\android\camera\CameraSettings.java 方法:找到public static final String EXPOSURE_DEFAULT_VALUE = "-2";修改其值即可修改它的默认曝光值,但是相机显示的还是原来曝光值,还需在 路径:android4.0\packages\apps\Camera\res\values\string.xml 方法:找到 24.截屏功能不能用 路径:frameworks\base\policy\src\com\android\internal\policy\impl\ PhoneWindowManager.java 方法:android4.0以后的版本增加了组合键截屏的功能,按住音量减键,同时按power键可以实现截屏功能,音量键和power键按下的时间间隔不能超过SCREENSHOT_CHORD_DEBOUNCE_DELAY_MILLIS(改变量定义在 PhoneWindowManager.java中),否则无法截屏,默认的定义为150,即按下音量减之后会等待150ms,如果在此时间内有power键按下,则认为是组合键截屏功能,否则认为是单纯的音量减功能; 注意,该定义值不宜过小,过小则组合键截屏的功能实现不了,过大则音量减功能反应迟钝;建议修改其值为500(先按电源键2~3秒不放,然后按音量减) 25.添加语言支持。 路径:android4.0\device\softwinner\crane-xx 方法:crane_xx.mk中添加一行代码PRODUCT_LOCALES := zh_CN en_US fr_FR it_IT es_ES de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW ru_RU nb_NO es_US da_DK el_GR tr_TR pt_PT pt_BR rm_CH sv_SE bg_BG ca_ES en_GB fi_FI hr_HR hu_HU in_ID iw_IL lt_LT lv_LV ro_RO sk_SK sl_SI sr_RS uk_UA vi_VN tl_PH ar_EG ar_IL ko_KR pl_PL。 26.字体大小。 路径:android4.0.3\frameworks\base\core\java\android\content\res\Configuration.java 方法:这个文件里面找到454行 fontScale 0.85f --> 小 1.0f --> 普通 1.15f --> 大 1.30f --> 超大 27.查看所有窗口小部件的 类名 和receiver名 路径:packages\apps\Setting\src\com\android\setting\appwidgetpickactivity.java 方法:void putAppWidgetItems(List List ............... item.packageName = info.provider.getPackageName(); item.className = info.provider.getClassName(); Log.v("mylog","##############item.packageName = "+item.packageName + ",item.className = "+item.className); ................... } 28.滑动设置亮度到最小时黑屏 路径:framwork\base\core\res\res\values\config.xml 方法: 值改大改成70。 29.usb存储默认连接 \frameworks\base\packages\SystemUI\src\com\android\systemui\usb\StorageNotification.java 方法:在public class StorageNotification extends StorageEventListener 在String stFlash = Environment.getFlashStorageState();后面添加 if(st != null){ while(true){ try { Thread.sleep(100); } catch (InterruptedException e) { } st = Environment.getExternalStorageState(); if(st.equals("mounted")) break; } } 在updateUsbMassStorageNotification(connected);后面添加 if(connected) mStorageManager.enableUsbMassStorage(); 30、去掉设置->平板电脑->状态->蓝牙信息 路径:package\apps\Settings\res\xml\device_info_status.xml 方法:注释 package\apps\Settings\src\com\android\settings\deviceinfo\Status.java 453 Preference btAddressPref = findPreference(KEY_BT_ADDRESS); if(btAddressPref != null) { if (bluetooth == null) { // device not BT capable getPreferenceScreen().removePreference(btAddressPref); } else { String address = bluetooth.isEnabled() ? bluetooth.getAddress() : null; btAddressPref.setSummary(!TextUtils.isEmpty(address) ? address : getString(R.string.status_unavailable)); } } 31.DDR ODT打开 1. 将SODT0上的R126_NC换为0R电阻 2. 在systemconfig.fex1和systemconfig.fex中修改如下: dram_emr1 = 0x4 32.安装apk未知来源默认选上 路径:\frameworks\base\packages\SettingsProvider\res\values\defaults.xml 方法: 33.修改默认重力感应 路径:frameworks/base/packages/SettingsProvider/resalues/defaults.xml路径下面 方法: 将special修改为default 34.在没有插入外部sd卡情况系统mount是提示sd卡插入 路径:systemui/src/com/android/systemui/usb/StorageNotification.java文件 方法:private void onStorageStateChangedAsync(String path, String oldState, String newState) 函数中: if(path.contains("usb")) { setMediaStorageNotification(R.string.usb_mounted_title, R.string.usb_mounted_message, com.android.internal.R.drawable.stat_notify_sdcard_prepare, true, true, null); } else if(path.contains("sd")) { setMediaStorageNotification(R.string.sd_mounted_title, R.string.sd_mounted_message, com.android.internal.R.drawable.stat_notify_sdcard_prepare, true, true, null); } break; 从判断上只要mount路径包含sd字符就提示sd卡插入字符,改为以下就ok: if(path.contains("usb")) { setMediaStorageNotification(R.string.usb_mounted_title, R.string.usb_mounted_message, com.android.internal.R.drawable.stat_notify_sdcard_prepare, true, true, null); } else if(path.contains("extsd")) { setMediaStorageNotification(R.string.sd_mounted_title, R.string.sd_mounted_message, com.android.internal.R.drawable.stat_notify_sdcard_prepare, true, true, null); } break; 35.去掉相机预览 路径:\packages\apps\Camera\res\layout-sw600dp\mode_picker.xml 方法: android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:scaleType="center" android:background="@drawable/bg_pressed" android:src="@drawable/ic_switch_pan_holo_light"/> 改为 android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:scaleType="center" android:background="@drawable/bg_pressed" android:src="@drawable/ic_switch_pan_holo_light" android:visibility="gone" /> 路径:android4.0\packages\apps\Camera\src\com\android\camera\MenuHelper.java +(62)行 方法:注释掉下面代码 //case ModePicker.MODE_PANORAMA: // labelId = R.string.switch_to_panorama_label; // iconId = R.drawable.btn_ic_panorama; // break; 36.google定位: 在2.3系统2.0.4版本之后及4.0系统默认已支持该功能,如不支持, 请check以下内容: 1).默认预装GoogleServicesFramework.apk、NetworkLocation.apk两个google官方apk; 2).整合以下到\frameworks\base\core\res\res\values\config.xml文件中: 3).将设置中wifi定位选项打开就可以在google maps等实现粗略的定位了; 37.状态栏隐藏 1).在Android4.0.1原有的代码中状态栏是永不隐藏的。在Android4.0.1的0.2版本中为了兼容原2.3.4中的全屏应用程序加入了状态栏隐藏。 因此在2.3.4中支持的全屏应用在4.0.1中也会全屏显示。 2).为了兼容更多的2.3.4应用程序全屏显示,在目前公版代码中默认采用状态栏隐藏处理。 3).对于没有返回键和没有home键的方案,需要方案中配置一下。配置的方法是, 在framework/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java中将FULLSCREEN_HIDESTATUSBAR置为false即可。 38.浏览器播放不了视频 1)、修改device/softwinner对应产品目录下的Boardconfig.mk,在文件后面添加一行代码 USE_OPENGL_RENDERER := true; 2)、修改device/softwinner对应产品目录下的crane_xxxx.mk文件中增加PRODUCT_PROPERTY_OVERRIDES 特性 hwui.render_dirty_regions=false 例如:PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.usb.config=mass_storage,adb \ ro.product.firmware=0.3 \ hwui.render_dirty_regions=false packages\apps\Browser\res\xml debug_preferences.xml android:key="user_agent" android:title="@string/pref_development_uastring" android:entries="@array/pref_development_ua_choices" android:entryValues="@array/pref_development_ua_values" android:defaultValue="3"/>//改成1 desktop模式 中修改defaultValue的值,对应如下: Android :0 Desktop :1 iPhone:2 iPad :3 Froyo-N1:4 Honeycomb-Xoom:5 BrowserSetting.java文件中需要同步修改,否则会出现显示值和实际值第一次不一致的情况: public int getUserAgent() { if (!isDebugEnabled()) {//704 return 0; } /* modified by Gary. start { {----------------------------------- */ /* 2011-11-29 */ /* modify the default user agent */ return Integer.parseInt(mPrefs.getString(PREF_USER_AGENT, "3")); /* add by Gary. end -----------------------------------}} */ } 修改完后重新编译即可 39.调lcd亮度、饱和度、对比度问题 路径:lichee\linux-3.0\drivers\video\sun4i\disp\de_bsp\de\disp_display.c文件修改 for(screen_id = 0; screen_id < 2; screen_id++) { gdisp.screen[screen_id].max_layers = 4; for(i = 0;i < gdisp.screen[screen_id].max_layers;i++) { gdisp.screen[screen_id].layer_manage[i].para.prio = IDLE_PRIO; } gdisp.screen[screen_id].image_output_type = IMAGE_OUTPUT_LCDC; gdisp.screen[screen_id].bright = 50; //屏的亮度 gdisp.screen[screen_id].contrast = 50; //屏的对比度 gdisp.screen[screen_id].saturation = 50; //屏的饱和度 gdisp.screen[screen_id].hue = 50; //屏的色彩 gdisp.scaler[screen_id].bright = 50; gdisp.scaler[screen_id].contrast = 50; gdisp.scaler[screen_id].saturation = 50; gdisp.scaler[screen_id].hue = 50; gdisp.screen[screen_id].lcd_bright = 192; } 这个里面就是设置 gdisp.screen[screen_id].bright = 50; gdisp.screen[screen_id].contrast = 50; gdisp.screen[screen_id].saturation = 50; gdisp.screen[screen_id].hue = 50; 就是设置对比度亮度,饱和度的 40.解锁左滑动 路径:android4.0\frameworks/base/policy/src/com/android/internal/policy/impl/LockScreen.java 方法:public void onTrigger(View v, int target)函数 改为 Intent intent = new Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER); 改回来 Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); 修改方法如下(如有其它问题,希望可以触类旁通) 在frameworks目录下搜索“无服务”(因为字符串资源都放在xml文件中) find . -name "*.xml" -depth -type f -print | xargs grep "无服务" 结果找到 ./base/core/res/res/values-zh-rCN/strings.xml: 得到lockscreen_carrier_default这个资源名,搜索代码 find . -name "*.java" -depth -type f -print | xargs grep "lockscreen_carrier_default" 结果找到 ./base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CarrierLabel.java: setText(com.android.internal.R.string.lockscreen_carrier_default); ./base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java: com.android.internal.R.string.lockscreen_carrier_default); ./base/policy/src/com/android/internal/policy/impl/KeyguardUpdateMonitor.java: R.string.lockscreen_carrier_default); 看文件名(含路径),容易知道要在/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CarrierLabel.java中改 注释掉setText调用,或者考虑把statusbar/phone/里的代码去掉(这个估计有点麻烦) 41.lichee/linux-3.0/drivers/media/video/sun5i_csi readMe.txt 摄像头i2c地址查询 42.屏保添加am_pm 路径:android4.0\\frameworks\base\core\java\com\android\internal\widget\ DigitalClock.java 方法:110行\\mAmPmTextView = (TextView) parent.findViewById(R.id.am_pm);去掉注释 路径:android4.0\frameworks\base\core\res\res\layout-sw600dp 方法:keyguard_screen_status_land.xml 和keyguard_screen_status_port.xml 中添加TextView(am_pm)部分 android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dip" android:layout_marginBottom="8dip" > android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="none" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/lockscreen_clock_foreground" android:layout_toRightOf="@id/timeDisplayBackground" android:layout_alignBottom="@id/timeDisplayBackground" /> 43.亮度最大时黑屏 BrightnessPreference.java(android4.0\packages\apps\settings\src\com\android\settings) +100(行) mSeekBar.setMax(MAXIMUM_BACKLIGHT?-?mScreenBrightnessDim-40); SettingsAppWidgetProvider.java (android4.0\\packages\apps\Settings\src\com\android\settings\widget)+849(行) else if(brightness brightness?=?MAXIMUM_BACKLIGHT-40; } 44.浏览器请求网址都以pc方式呈现 路径:android4.0\packages\apps\Browser\src\com\android\browser\ BrowserSettings.java 方法:269;271;538;538行都改成settings.setUserAgentString(DESKTOP_USERAGENT); 45.设置->显示->休眠->添加从不待机项 路径:android4.0\packages\apps\Settings\res\ values\ arrays.xml 方法:添加never sleep部分的字 46.修改系统默认音量 路径:android4.0\frameworks\base\media\java\android\media\AudioManager.java +176(行) 方法:修改其数值即可 /** @hide Default volume index values for audio streams */ public static final int[] DEFAULT_STREAM_VOLUME = new int[] { 4, // STREAM_VOICE_CALL 7, // STREAM_SYSTEM 5, // STREAM_RING 11, // STREAM_MUSIC 6, // STREAM_ALARM 5, // STREAM_NOTIFICATION 7, // STREAM_BLUETOOTH_SCO 7, // STREAM_SYSTEM_ENFORCED 11, // STREAM_DTMF 11 // STREAM_TTS }; 47.键盘错位 路径:android4.0\packages\inputmethods\LatinIME\java\src\com\android\inputmethod\latin\LatinIME.java +(1073)行 方法:减去100即可(原理暂时不清楚) final int touchHeight = inputView.getHeight() + extraHeight // Extend touchable region below the keyboard. + EXTENDED_TOUCHABLE_REGION_HEIGHT-100; 48.声音设置中替换电话图标 路径:android4.0\packages\apps\Settings\src\com\android\settings\RingerVolumePreference.java +86~93(行) 方法:com.android.internal.R.drawable.ic_audio_ring_notif_mute 替换成 com.android.internal.R.drawable.ic_audio_vol_mute com.android.internal.R.drawable.ic_audio_ring_notif 替换成 com.android.internal.R.drawable.ic_audio_vol 49.去掉设置->更多->移动网路 路径:android4.0\packages\apps\Settings\res\xml\wireless_settings.xml +(74)行 方法:注释掉下面项 50. 去掉自动同步时区,并且能选择时区。 路径:android4.0\packages\apps\Settings\res\xml\date_time_prefs.xml +(24)行 方法:注释掉下面项 路径:android4.0\packages\apps\Settings\src\com\android\settings\DateTimeSettings.java +(94~101~140)行 方法:注释掉下面项; //mAutoTimeZonePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME_ZONE); //mAutoTimeZonePref.setChecked(autoTimeZoneEnabled); 方法:mTimeZone.setEnabled(!autoTimeZoneEnabled); 改成 mTimeZone.setEnabled(true); 51.去掉音乐中低音增强/3D音效模式 路径:android4.0\packages\apps\MusicFX\res\layout\music_main.xml +(57)行 路径:android4.0\packages\apps\MusicFX\res\layout-land\music_main.xml +(67)行 方法: 添加 android:visibility="gone" 属性 52.Google搜索本地音乐->点击播放音乐出错 路径:android4.0\packages\apps\Music\src\com\android\music\QueryBrowserActivity.java +(89)行 方法:这个问题原因是:播放列表界面响应播放消息以后,播放列表界面会开启playback界面来播放音乐,把自己杀掉,在杀掉自己的时候,列表view没有初始化,导致抛出空指针异常 修改方法如下: onServiceConnecte函数,在函数开始部分加入setContentView(R.layout.query_activity);进行初始化即可. 53.去掉设置3G图标 路径:android4.0\frameworks\base\packages\SystemUI\res\layout-sw600dp\status_bar_notification_panel_title.xml +(61)行 方法: 53.计算器菜单面板高级,基本设置出错 路径:android4.0\packages\apps\Calculator\res\menu\menu.xml +(27)行 方法:注释掉下面项 路径:\android4.0\packages\apps\Calculator\src\com\android\calculator2\Calculator.java +(174~148)行 方法:注释掉下面项 //menu.findItem(R.id.basic).setVisible(!getBasicVisibility()); //menu.findItem(R.id.advanced).setVisible(!getAdvancedVisibility()); 54.隐藏系统状态栏 路径:android4.0\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\StatusBar.java +(65)行 方法:添加sb.setVisibility(View.INVISIBLE); 55.字幕重叠(播放外带字幕电影,播放电影且已有字幕出现在屏幕上时触摸屏幕调出子菜单,字幕和菜单重叠,下一条字幕出现时则恢复正常。) 路径:修改 android4.0\packge\app\Gallery2\src\com\android\gallery3d\app\MediaController.java +()行 方法:在initControllerView 函数最后加 mUpSubPos += 10; 即可 56.竖屏时候音量键不隐藏; 路径:android4.0\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\tablet\TabletStatusBarView.java +(91)行 方法:注释掉//volume_up.setVisibility(View.GONE); //volume_down.setVisibility(View.GONE); 55.设置->关于平板电脑->系统更新->实现自动升级sdcard和extsd中根目录update.zip文件 路径:android4.0\packages\apps\Settings\res\xml\device_info_settings.xml +(21)行 方法:修改成下面一样 android:title="@string/system_update_settings_list_item_title" android:summary="@string/system_update_settings_list_item_summary"> android:targetPackage="@string/update_package_name" android:targetClass="@string/update_class_name" /> 路径:android4.0\packages\apps\Settings\res\values\strings.xml 方法:添加以下两字字符串属性 路径:android4.0\device\softwinner\common\packages\Update 方法:修改的地方见update.txt文档 56.去掉设置->更多->移动网络 路径:android4.0\packages\apps\Settings\res\xml\wireless_settings.xml +(74)行 方法:注释掉下面代码 57.去掉设置->设置快捷方式(Widgets)里面的蓝牙和网络共享项 路径:android4.0\packages\apps\Settings\AndroidManifest.xml +(242)行 +(280)行 方法:注释掉 如果想要去掉其它的项,只需要注释掉其Activity里面的SHORTCUT属性即可 58.电阻屏佳也MD4301校准 路径:android4.0/packages/TSCalibration2/res/values/dimens.xml 方法:把减符号的代码替换成加号的代码 - - - + + + 路径:android4.0\device\softwinner\common\packages\TSCalibration2\src\org\zeroxlab\util\tscal TSCalibrationView.java +(38)行 方法:把减符号的代码替换成加号的代码 - final private static int P_DELTA = 50; + final private static int P_DELTA = 60; 59.去掉设置->显示->智能背光 路径:\android4.0\device\softwinner\nuclear-pub\overlay\packages\apps\Settings\res\values\bools.xml 方法: 60.去掉设置->显示->HDMI输出模式 路径:android4.0\packages\apps\Settings\res\values\bools.xml 方法: 61.play store 打不开 apk 要放到app下. 62 Android 默认声音大小修改 修改文件:frameworks/base/media/java/android/media/AudioManager.java /** @hide Default volume index values for audio streams */ public static final int[] DEFAULT_STREAM_VOLUME = new int[] { 4, // STREAM_VOICE_CALL 7, // STREAM_SYSTEM 4, // STREAM_RING 8, // STREAM_MUSIC 4, // STREAM_ALARM 4, // STREAM_NOTIFICATION 7, // STREAM_BLUETOOTH_SCO 7, // STREAM_SYSTEM_ENFORCED 11, // STREAM_DTMF 11, // STREAM_TTS 4, // STREAM_FM 4 // STREAM_MATV }; 此数组有定义音量默认大小。可根据实际修改。