android 量产软件改动信息
文章转自:http://blog.csdn.net/xubin341719/article/details/8449352
关键词:android 4.0默认语言蓝牙名称 MTP名称默认时区关于平板电脑 内核版本号
平台信息:
内核:linux2.6/linux3.0
系统:android/android4.0
平台:S5PV310(samsungexynos4210)
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
-
PRODUCT_LOCALES := zh_CN \
-
en_US \
-
zh_TW \
-
en_GB \
-
fr_FR \
-
it_IT \
-
cs_CZ \
-
de_DE \
-
da_DK \
-
el_GR \
PRODUCT_LOCALES := zh_CN \
en_US \
zh_TW \
en_GB \
fr_FR \
it_IT \
cs_CZ \
de_DE \
da_DK \
el_GR \
用那个语言,把它放到早前面,就可以,如:
zh_CN:中文简体
zh_TW:中文繁体
en_US:英文(美国)
这篇文章中有对应的 语言地区Android 地区语言和简写对照表
5、更改蓝牙名称
android/external/bluetooth/bluez/src/main.c
-
static void init_defaults(void)
-
{
-
-
memset(&main_opts, 0, sizeof(main_opts));
-
main_opts.mode = MODE_CONNECTABLE;
-
main_opts.name = g_strdup("W42");
-
main_opts.discovto = DEFAULT_DISCOVERABLE_TIMEOUT;
-
main_opts.remember_powered = TRUE;
-
main_opts.reverse_sdp = TRUE;
-
main_opts.name_resolv = TRUE;
-
main_opts.link_mode = HCI_LM_ACCEPT;
-
main_opts.link_policy = HCI_LP_RSWITCH | HCI_LP_SNIFF |
-
HCI_LP_HOLD | HCI_LP_PARK;
-
-
if (gethostname(main_opts.host_name, sizeof(main_opts.host_name) - 1) < 0)
-
strcpy(main_opts.host_name, "noname");
-
}
static void init_defaults(void)
{
/* Default HCId settings */
memset(&main_opts, 0, sizeof(main_opts));
main_opts.mode = MODE_CONNECTABLE;
main_opts.name = g_strdup("W42");//更改这里的名称
main_opts.discovto = DEFAULT_DISCOVERABLE_TIMEOUT;
main_opts.remember_powered = TRUE;
main_opts.reverse_sdp = TRUE;
main_opts.name_resolv = TRUE;
main_opts.link_mode = HCI_LM_ACCEPT;
main_opts.link_policy = HCI_LP_RSWITCH | HCI_LP_SNIFF |
HCI_LP_HOLD | HCI_LP_PARK;
if (gethostname(main_opts.host_name, sizeof(main_opts.host_name) - 1) < 0)
strcpy(main_opts.host_name, "noname");
}
6、更MTP名称
android/system/vold/Volume.cpp
-
int Volume::formatVol() {
-
-
if (getState() == Volume::State_NoMedia) {
-
errno = ENODEV;
-
return -1;
-
} else if (getState() != Volume::State_Idle) {
-
errno = EBUSY;
-
return -1;
-
}
-
-
if (isMountpointMounted(getMountpoint())) {
-
SLOGW("Volume is idle but appears to be mounted - fixing");
-
setState(Volume::State_Mounted);
-
-
errno = EBUSY;
-
return -1;
-
}
-
-
bool formatEntireDevice = (mPartIdx == -1);
-
char devicePath[255];
-
char *label = NULL;
-
dev_t diskNode = getDiskDevice();
-
dev_t partNode = MKDEV(MAJOR(diskNode), (formatEntireDevice ? 1 : mPartIdx));
-
-
setState(Volume::State_Formatting);
-
-
int ret = -1;
-
-
if (formatEntireDevice) {
-
sprintf(devicePath, "/dev/block/vold/%d:%d",
-
MAJOR(diskNode), MINOR(diskNode));
-
-
if (initializeMbr(devicePath)) {
-
SLOGE("Failed to initialize MBR (%s)", strerror(errno));
-
goto err;
-
}
-
}
-
-
sprintf(devicePath, "/dev/block/vold/%d:%d",
-
MAJOR(partNode), MINOR(partNode));
-
-
if (mDebug) {
-
SLOGI("Formatting volume %s (%s)", getLabel(), devicePath);
-
}
-
label="W42";
-
if (Fat::format(devicePath, 0, label)) {
-
SLOGE("Failed to format (%s)", strerror(errno));
-
goto err;
-
}
-
-
ret = 0;
-
-
err:
-
setState(Volume::State_Idle);
-
return ret;
-
}
int Volume::formatVol() {
if (getState() == Volume::State_NoMedia) {
errno = ENODEV;
return -1;
} else if (getState() != Volume::State_Idle) {
errno = EBUSY;
return -1;
}
if (isMountpointMounted(getMountpoint())) {
SLOGW("Volume is idle but appears to be mounted - fixing");
setState(Volume::State_Mounted);
// mCurrentlyMountedKdev = XXX
errno = EBUSY;
return -1;
}
bool formatEntireDevice = (mPartIdx == -1);
char devicePath[255];
char *label = NULL;
dev_t diskNode = getDiskDevice();
dev_t partNode = MKDEV(MAJOR(diskNode), (formatEntireDevice ? 1 : mPartIdx));
setState(Volume::State_Formatting);
int ret = -1;
// Only initialize the MBR if we are formatting the entire device
if (formatEntireDevice) {
sprintf(devicePath, "/dev/block/vold/%d:%d",
MAJOR(diskNode), MINOR(diskNode));
if (initializeMbr(devicePath)) {
SLOGE("Failed to initialize MBR (%s)", strerror(errno));
goto err;
}
}
sprintf(devicePath, "/dev/block/vold/%d:%d",
MAJOR(partNode), MINOR(partNode));
if (mDebug) {
SLOGI("Formatting volume %s (%s)", getLabel(), devicePath);
}
label="W42";//更改这个名称
if (Fat::format(devicePath, 0, label)) {
SLOGE("Failed to format (%s)", strerror(errno));
goto err;
}
ret = 0;
err:
setState(Volume::State_Idle);
return ret;
}
7、更改“关于平板电脑”中的信息
(1)、型号
android/device/samsung/smdk4x12/full_smdk4x12.mk
-
PRODUCT_MANUFACTURER := full_smdk4x12
-
PRODUCT_BRAND := full_smdk4x12
-
PRODUCT_MODEL := W42(QuadCore)
PRODUCT_MANUFACTURER := full_smdk4x12
PRODUCT_BRAND := full_smdk4x12
PRODUCT_MODEL := W42(QuadCore)
(2)、内核版本
这个有点不太好找,一个同事跟我说的,内核路径为:
kernel/scripts/mkcompile_h
-
# Generate a temporary compile.h
-
-
( echo /\* This file is auto generated, version $VERSION \*/
-
if [ -n "$CONFIG_FLAGS" ] ; then echo "/* $CONFIG_FLAGS */"; fi
-
-
echo \#define UTS_MACHINE \"$ARCH\"
-
-
echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
-
-
echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\" //更改者两个echo的值
-
echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\"
-
-
echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\"
-
) > .tmpcompile
# Generate a temporary compile.h
( echo /\* This file is auto generated, version $VERSION \*/
if [ -n "$CONFIG_FLAGS" ] ; then echo "/* $CONFIG_FLAGS */"; fi
echo \#define UTS_MACHINE \"$ARCH\"
echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\" //更改者两个echo的值
echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\"
echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\"
) > .tmpcompile
(3)、版本号
android/out/target/product/w42/system/build.prop
-
ro.build.display.id=w42.eng.tim.20121224.093047
-
ro.build.version.incremental=eng.tim.20121224.093047
ro.build.display.id=w42.eng.tim.20121224.093047
ro.build.version.incremental=eng.tim.20121224.093047
其实在build.prop目录中有许多,关于系统的信息,有兴趣的话可以看下。
8、更改默认时区
除的语言外,外单产品默认时区也要改动。找到相应的system.prop,加入下面语句。
android/device/samsung/smdk4x12/system.prop
-
#default time zone
-
persist.sys.timezone=Asia/Shanghai
#default time zone
persist.sys.timezone=Asia/Shanghai
9、在桌面放一图标,点击链接到一指定网址
10、把应用程序的图标默认放到桌面
阅读(1348) | 评论(0) | 转发(0) |