http://blog.csdn.net/xubin341719/article/details/8449352

关键词:android 4.0默认语言蓝牙名称 MTP名称默认时区关于平板电脑 内核版本号
平台信息:
内核:linux2.6/linux3.0
系统:android/android4.0
平台:S5PV310(samsungexynos4210)

作者:xubin341719(欢迎转载,请注明作者)

1、开关机logo;

2、用户模式、工程模式;

3、更改默认语言;

5、更改蓝牙名称;

6、更MTP名称;

7、更改“关于平板电脑”中的信息;

8、更改默认时区;

………………

以三星平台为基础,如果是其它平台,只做参考

        下面只是一些做订单时候经常要改动的地方,没什么技术含量,不过我觉得这一部分也比较重要,研发出来的东西,卖出去换回钱,才是到我们最大的回报。这一部分会持续更新,指不定一个“极品”的客户要更改什么不靠谱的东西,记录下来,节省大家的时间,知道在那个地方改就行了。

1、开关机logo

现在好多公司就是个皮包公司,自己不做研发,在外面买,开机画面要做成他们特有的,所以这一点在工作中用的也是比较多的。中国的产品,那叫“泛滥”呀。

这篇文章中对logo有详细描述:android logo:内核、android开机动画

2、用户模式、工程模式

        产品出去的时候,要用用户模式,这时串口终端是不能操作的,只能显示。三星平台有一个问题就是,在工程模式下,如果系统有点卡,会有一个红色的边框出现,这个问题我们老大叫它“BUG”,这个没法跟他去理论,总之不应该出现的东西都是BUG,那就转换成user模式,把这个问题解了。

这篇文章中有关于usr eng的描述:android 4.0 编译模式 eng -- > user 时遇到的问题

3、更改默认语言

  做产品服务要周道,不能出到别的国家的东西,一开机会是中文的,那就有点不太友好了,英文好多地方可以接受,可是现在中文还是没有那么广泛应用的。其实android默认是En的,我们内单的就是改过来的。下面看我们怎么把默认的英文改成中文,为没过“CET4”的同学服务。

android/device/samsung/smdk4x12/full_smdk4x12.mk

[html] view plaincopy

  1. PRODUCT_LOCALES := zh_CN \ 
  2.        en_US \ 
  3.        zh_TW \ 
  4.        en_GB \ 
  5.        fr_FR \ 
  6.        it_IT \ 
  7.        cs_CZ \ 
  8.        de_DE \ 
  9.        da_DK \ 
  10.        el_GR \ 

用那个语言,把它放到早前面,就可以,如:

zh_CN:中文简体

zh_TW:中文繁体

en_US:英文(美国)

这篇文章中有对应的 语言地区Android 地区语言和简写对照表

5、更改蓝牙名称

android/external/bluetooth/bluez/src/main.c

[cpp] view plaincopy

  1. static void init_defaults(void) 
  2. /* Default HCId settings */
  3.         memset(&main_opts, 0, sizeof(main_opts)); 
  4.         main_opts.mode  = MODE_CONNECTABLE; 
  5.         main_opts.name  = g_strdup("W42");//更改这里的名称
  6.         main_opts.discovto      = DEFAULT_DISCOVERABLE_TIMEOUT; 
  7.         main_opts.remember_powered = TRUE; 
  8.         main_opts.reverse_sdp = TRUE; 
  9.         main_opts.name_resolv = TRUE; 
  10.         main_opts.link_mode = HCI_LM_ACCEPT; 
  11.         main_opts.link_policy = HCI_LP_RSWITCH | HCI_LP_SNIFF | 
  12.                                                 HCI_LP_HOLD | HCI_LP_PARK; 
  13. if (gethostname(main_opts.host_name, sizeof(main_opts.host_name) - 1) < 0) 
  14.                 strcpy(main_opts.host_name, "noname"); 

6、更MTP名称

android/system/vold/Volume.cpp

[cpp] view plaincopy

  1. int Volume::formatVol() { 
  2. if (getState() == Volume::State_NoMedia) { 
  3.         errno = ENODEV; 
  4. return -1; 
  5.     } else if (getState() != Volume::State_Idle) { 
  6.         errno = EBUSY; 
  7. return -1; 
  8.     } 
  9. if (isMountpointMounted(getMountpoint())) { 
  10.         SLOGW("Volume is idle but appears to be mounted - fixing"); 
  11.         setState(Volume::State_Mounted); 
  12. // mCurrentlyMountedKdev = XXX
  13.         errno = EBUSY; 
  14. return -1; 
  15.     } 
  16. bool formatEntireDevice = (mPartIdx == -1); 
  17. char devicePath[255]; 
  18. char *label = NULL; 
  19.     dev_t diskNode = getDiskDevice(); 
  20.     dev_t partNode = MKDEV(MAJOR(diskNode), (formatEntireDevice ? 1 : mPartIdx)); 
  21.     setState(Volume::State_Formatting); 
  22. int ret = -1; 
  23. // Only initialize the MBR if we are formatting the entire device
  24. if (formatEntireDevice) { 
  25.         sprintf(devicePath, "/dev/block/vold/%d:%d", 
  26.                 MAJOR(diskNode), MINOR(diskNode)); 
  27. if (initializeMbr(devicePath)) { 
  28.             SLOGE("Failed to initialize MBR (%s)", strerror(errno)); 
  29. goto err; 
  30.         } 
  31.     } 
  32.     sprintf(devicePath, "/dev/block/vold/%d:%d", 
  33.             MAJOR(partNode), MINOR(partNode)); 
  34. if (mDebug) { 
  35.         SLOGI("Formatting volume %s (%s)", getLabel(), devicePath); 
  36.     } 
  37.     label="W42";//更改这个名称
  38. if (Fat::format(devicePath, 0, label)) { 
  39.         SLOGE("Failed to format (%s)", strerror(errno)); 
  40. goto err; 
  41.     } 
  42.     ret = 0; 
  43. err: 
  44.     setState(Volume::State_Idle); 
  45. return ret; 

7、更改“关于平板电脑”中的信息

(1)、型号

android/device/samsung/smdk4x12/full_smdk4x12.mk

[html] view plaincopy

  1. PRODUCT_MANUFACTURER := full_smdk4x12
  2. PRODUCT_BRAND := full_smdk4x12
  3. PRODUCT_MODEL := W42(QuadCore) 

(2)、内核版本

这个有点不太好找,一个同事跟我说的,内核路径为:

kernel/scripts/mkcompile_h

[html] view plaincopy

  1. # Generate a temporary compile.h 
  2. ( echo /\* This file is auto generated, version $VERSION \*/ 
  3.   if [ -n "$CONFIG_FLAGS" ] ; then echo "/* $CONFIG_FLAGS */"; fi 
  4.   echo \#define UTS_MACHINE \"$ARCH\" 
  5.   echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\" 
  6.   echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\"  //更改者两个echo的值 
  7.   echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\" 
  8.   echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\" 
  9. ) > .tmpcompile 

(3)、版本号

android/out/target/product/w42/system/build.prop

[html] view plaincopy

  1. ro.build.display.id=w42.eng.tim.20121224.093047 
  2. ro.build.version.incremental=eng.tim.20121224.093047 

其实在build.prop目录中有许多,关于系统的信息,有兴趣的话可以看下。

8、更改默认时区

除的语言外,外单产品默认时区也要改动。找到相应的system.prop,加入下面语句。

android/device/samsung/smdk4x12/system.prop

[html] view plaincopy

  1. #default time zone 
  2. persist.sys.timezone=Asia/Shanghai 

9、在桌面放一图标,点击链接到一指定网址

10、把应用程序的图标默认放到桌面

android 量产软件改动信息(持续更新)的更多相关文章

  1. Android中常用开发工具类—持续更新...

    一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...

  2. Android 常用开源库总结(持续更新)

    前言 收集了一些比较常见的开源库,特此记录(已收录350+).另外,本文将持续更新,大家有关于Android 优秀的开源库,也可以在下面留言. 一 .基本控件 TextView HTextView 一 ...

  3. 超赞的Linux软件分享(持续更新)

    开发 Android studio - Android 的官方 IDE:Android Studio 提供在各种类型的安卓设备上构建应用最快的工具. Aptana - Aptana Studio 利用 ...

  4. android 编译环境 & 开发教程 【持续更新】

    一. 优秀博文推荐 1.ubuntu 搭建 android源码编译环境 ubuntu14.04LTS android 源码编译环境的搭建 2.开源网站 2.android 开源 网站 2015最流行的 ...

  5. android 开发中用到的工具-持续更新(码农必看)

    1. vim 单文件查看改动利器(一直使用支持各种编码各种文件,各种插件),欢迎下载笔者插件 git clone https://github.com/green130181/vim-conf.git ...

  6. Android中AlarmManager使用示例(持续更新,已经更改)

    现在普遍的手机都会有一个闹钟的功能,如果使用Android来实现一个闹钟可以使用AtarmManager来实现.AtarmManager提供了一种系统级的提示服务,允许你安排在将来的某个时间执行一个服 ...

  7. Android Studio的安装使用记录[持续更新]

    参考资料: Windows环境下Android Studio v1.0安装教程 http://ask.android-studio.org/?/article/9 1. 下载与安装 在http://w ...

  8. Android Studio快捷键指南(本文持续更新)

    这是我在使用Android Studio过程中接触到的一些快捷键,和大家分享,后面会继续完善此文,也欢迎大家踊跃补充,一起完善. 快捷键 删除并剪贴行:Ctrl+X 复制一行:Ctrl+D 代码格式整 ...

  9. ubuntu相关软件合集(持续更新中)

    本人使用的是Ubuntu-Kylin14.04,自带了日历.输入法.优客助手等易于上手的应用.省的每次安装完原生的系统再麻烦的安装,下面介绍默认应用外的相关常用软件: 一.Keylock Applic ...

随机推荐

  1. swift--CATransform3D的简单介绍

    今天来了解下CATransform3D的一些基本的知识.CATransform3D是一个用于处理3D形变的类,其可以改变控件的平移.缩放.旋转.斜交等,其坐标系统采用的是三维坐标系,即向右为x轴正方向 ...

  2. GSAP JS基础教程--使用缓动函数

    今天来了解一下缓动easeing函数. 开始,如果你还没有GSAP的类包,可以到GreenSock的官网去下载最新版本的类包,或者直接点击这里​来下载 学习之前,先来准备一下:     <!DO ...

  3. MongoDB(四)-- 主从配置

    一.前言 虽然MongoDB官方已经不建议使用主从模式了,但是 熟悉下 也是有用的,替代方案是采用副本集的模式.slave默认情况下是不支持读写的,但是master会把数据同步到slave,不支持客户 ...

  4. 关于 g++ 编译器

    g++由自由软件基金发行,g++是基于类unix的c++编译器,通常在命令行运行.它一般附带于类Unix系统中,因此如果你正在运行Unix或Linux系统,它很可能已经存在于你的系统中.你可以对一个源 ...

  5. Python的Flask框架与数据库连接的教程

     命令行方式运行Python脚本 在这个章节中,我们将写一些简单的数据库管理脚本.在此之前让我们来复习一下如何通过命令行方式执行Python脚本. 如果Linux 或者OS X的操作系统,需要有执行脚 ...

  6. 使用es6的蹦床函数解决递归造成的堆栈溢出

      首先,我们先定义一个函数,使用递归的思想写求和的方法: function sum(x, y) { if (y > 0) { return sum(x + 1, y - 1); } else ...

  7. 转:ANDROID音频系统散记之四:4.0音频系统HAL初探

    昨天(2011-11-15)发布了Android4.0的源码,今天download下来,开始挺进4.0时代.简单看了一下,发现音频系统方面与2.3的有较多地方不同,下面逐一描述. 一.代码模块位置 1 ...

  8. ldap 测试表设计

    1. ldap_oc_mappings    存储objeckClass 信息 表结构:  Column Desc. id objectClass的唯一标识 name objectClass的名称 k ...

  9. QT开发之旅一DS7400主机调试工具

    接触QT三年有余,期间因为工作需要断断续续学习过,2010年开始接触,当时好像是4.7版本,现在都已经到5.2版本了,更新真快,前阵子安装了下5.2版本,还是有很多变化的,不过感觉好像编译速度慢了很多 ...

  10. echarts - 树图实现四个层级

    我相信很多人和我一样,制作echats图标时,都会先去demo官网找相同的或者近似的效果,然后再此基础上改进成我们想要的那个. 但是近期混迹某微信群时,我看到一个群友抛出问题说,echarts画树状图 ...