• android 量产软件改动信息(持续更新)


    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、把应用程序的图标默认放到桌面

  • 相关阅读:
    【转】免费搭建独立博客,WordPress+独立域名+独立空间
    MongoDB索引
    面向对象
    浏览器为webapp
    转载Chrome浏览器IOS
    浅淡Webservice、WSDL三种服务访问的方式(附案例)
    Plupload
    转载Yale CAS + .net Client 实现 SSO(6)
    java 对Hbase的基本操作
    【精】iOS开发视频教程下载
  • 原文地址:https://www.cnblogs.com/cute/p/4861293.html
Copyright © 2020-2023  润新知