Android常用固件修改

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中

1800000 //(单位:毫秒)

修改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

修改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文件中

  @null

  将其修改为对应的live wallpaper的启动component即可,如要把默认壁纸设置为2.1自带的galaxy,这样写即可:com.Android.wallpaper/com.android.wallpaper.galaxy.GalaxyWallpaper

这里的com.Android.wallpaper/com.android.wallpaper.galaxy.GalaxyWallpaper是动态壁纸的service的名字。

14.设置默认输入法

  路径:frameworks/base/core/res/res/values/config.xml 添加一个属性:

  com.android.inputmethod.pinyin/.PinyinIME

  路径:

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中添加wallpaper_xx

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

方法:添加英文名称: "Company name"

         "U.zone"

路径: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

方法:找到-2同时修改其值。

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 appWidgets,

            List customExtras, List items) {

  ...............

            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

方法:20

 值改大改成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

方法:false 中的false改成true

33.修改默认重力感应

路径:frameworks/base/packages/SettingsProvider/resalues/defaults.xml路径下面

方法:

   special

   将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文件中:

   

   

    com.google.android.location.NetworkLocationProvider

   

   

   

    com.google.android.location.GeocodeProvider

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部分的字

   

        15 seconds

        30 seconds

        1 minute

        2 minutes

        5 minutes

        10 minutes

        30 minutes

        never sleep

   

   

   

       

        15000

       

        30000

       

        60000

       

        120000

       

        300000

       

        600000

       

        1800000

        -1

  

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)行

方法: 添加 android:visibility="gone" 属性

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

方法:添加以下两字字符串属性

     com.softwinner.update

     com.softwinner.update.UpdateActivity

路径: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

方法:把减符号的代码替换成加号的代码

      - 200

   - 800

   - 480

   + 120

   + 480 //屏幕宽

   + 272 //屏幕高

路径: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

方法:true改成false

60.去掉设置->显示->HDMI输出模式

路径:android4.0\packages\apps\Settings\res\values\bools.xml

方法:true改成false

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

    };

此数组有定义音量默认大小。可根据实际修改。


你可能感兴趣的:(android修改和定制)