安卓系统的 分区更改手机开机时系统怎么更改

Android系统开机画面修改-android100学习网
Android系统开机画面修改
Android系统开机画面分为下面三个阶段:1、开机图片:Android内核是基于标准内核的,对linux比较熟悉,特别是在开发板上移植过Linux系统的人就知道在内核引导过程中会显示出一 个小企鹅的图片,这就是第一阶段的...
&Android系统开机画面分为下面三个阶段:
1、开机图片:Android内核是基于标准内核的,对linux比较熟悉,特别是在开发板上移植过Linux系统的人就知道在内核引导过程中会显示出一 个小企鹅的图片,这就是第一阶段的开机图片,相信大家知道怎么去修改它。Android1.5及其以上版本都取消了这个图片的显示,具体的看内核相关代码 就知道了;
2、开机文字:Android系统开机会出现&A N D R O I D&这行字,相信大家都不陌生,那么这个怎么修改呢?相关文件在Android系统源码(不是Android内核源码)system/core/init/init.c,如下代码片段:
if(&load_565rle_image(INIT_IMAGE_FILE)&)&{&&
&&&&&fd&=&open(&/dev/tty0&,&O_WRONLY);&&
&&&&&if&(fd&&=&0)&{&&
&&&&&&&&&const&char&*&&
&&&&&&&&&&&&&msg&=&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&//&console&is&40&cols&x&30&lines&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&\n&&&
&&&&&&&&&&&&&&&&&&&&&&&A&N&D&R&O&I&D&&;&&
&&&&&&&&&write(fd,&msg,&strlen(msg));&&
&&&&&&&&&close(fd);&&
到这里大家就知道怎么修改了吧。但是这里要提到的一点就是,上面的代码片段有一个if语句,就是先检测在文件系统根目录下是否存在要实现的开机动画,如果 不存在的话,那么就显示这个文本信息代替,所以,这个阶段是可以实现图片的显示的,而且图片的格式是.rle格式的。如果不存在就显示文本,所以你可以选 择系那是自己的文字,也就是修改&A N D R O I D&字样啊。也可以选择显示图片,但是要自己在文件系统的根目录下提供提片,具体的图片的名字在init.h文件中定义:
#define&INIT_IMAGE_FILE&&/initlogo.rle&&&
int&load_565rle_image(&char&*file_name&);
看到上面的宏定义大家就懂了吧,至于怎么制作rle格式的,这个使用一些软件就好。
3、开机动画:这个阶段就是大家能看到的系统启动过程中,显示完&A N D R O I D&字样后显示的图片,类似进度条一样,图片内容也是&A N D R O I D&字样。这里怎么修改呢?
其实这个部分的动画是使用两个图片显示出来的,具体的图片文件所在路径为:frameworks/base/core/res/assets/images,大家看一下就知道了,也就知道怎么修改了。但是还没完。
和这部分相关的源码文件主要是如下几个:frameworks/base/cmds/bootanimation下面的几个文件就是的了,可以看看BootAnimation.cpp文件的内容,有如下代码片段:
bool&BootAnimation::android()&&
&&&&initTexture(&mAndroid[0],&mAssets,&&images/android-logo-mask.png&);&&
&&&&initTexture(&mAndroid[1],&mAssets,&&images/android-logo-shine.png&);
这就是设置显示的前景图片和背景图片。
接着看还有如下代码:
#define&USER_BOOTANIMATION_FILE&&/data/local/bootanimation.zip&&&
#define&SYSTEM_BOOTANIMATION_FILE&&/system/media/bootanimation.zip&&&&
#define&SYSTEM_ENCRYPTED_BOOTANIMATION_FILE&&/system/media/bootanimation-encrypted.zip&
看宏名相信大家就知道了,这就是设置动画文件的名称了。为什么会又显示图片又设置动画显示呢,这个Android版本有关。显示两个图片:前景和背景图片 是在1.5版本用,后来就改为了设置动画文件,就是:bootanimation.zip,是zip格式的,这个文件包含三个内容:两个目录:part0 和part1,一个文件desc.txt。
两个目录用来包含要显示的图片,分为第一阶段和第二阶段。剩下的文件就是设置关于如何显示的信息
示例如下:
480 800 15
p 1 0 part0
p 0 0 part1
具体的含义如下:
480--width of the image, 800--height of the image, 15--frames of second
p 1, display one time
p 0, display recycling till handset power on finished,相信大家懂了!呵呵。
你可以制作自己的bootanimation.zip文件放置在合适的目录下,这样可以代替默认的开机界面:这里说的合适的目录就是上面的宏定义,大家都懂^_^!
怎么制作bootanimation.zip文件呢?和上面一样创建两个目录和一个文件,然后使用软件或者是命令行大包即可
zip -r -0 bootanimation.zip part0 part1 desc.txt
至此,自定义开机画面就完成了!智能手机教程子分类修改android系统开机界面
1、开机图片:Android内核是基于标准内核的,对linux比较熟悉,特别是在开发板上移植过Linux系统的人就知道在内核引导过程中会显示出一个小企鹅的图片,这就是第一阶段的开机图片,相信大家知道怎么去修改它。Android1.5及其以上版本都取消了这个图片的显示,具体的看内核相关代码就知道了;
2、开机文字:Android系统开机会出现“A N D R O I
D”这行字,相信大家都不陌生,那么这个怎么修改呢?相关文件在Android系统源码(不是Android内核源码)system/core/init/init.c,如下代码片段:&if(
load_565rle_image(INIT_IMAGE_FILE) ) {&
fd = open("/dev/tty0",
O_WRONLY);&
if (fd &= 0) {&
const char *&
&&&&&&&&&&&&
msg = "\n"&
"\n"& // console is 40 cols x 30
"&&&&&&&&&&&&
A N D R O I D ";&
write(fd, msg, strlen(msg));&
close(fd);&
3、开机动画:这个阶段就是大家能看到的系统启动过程中,显示完"A N D R O I
D"字样后显示的图片,类似进度条一样,图片内容也是“A N D R O I D”字样。这里怎么修改呢?
&&&&&&&&&&&
其实这个部分的动画是使用两个图片显示出来的,具体的图片文件所在路径为:frameworks/base/core/res/assets/images,大家看一下就知道了,也就知道怎么修改了。但是还没完。
&&&&&&&&&&&
和这部分相关的文件主要是如下几个:frameworks/base/cmds/bootanimation下面的几个文件就是的了,可以看看BootAnimation.cpp文件的内容,有如下代码片段:
[java] bool
BootAnimation::android()&
initTexture(&m[0],
mAssets, "images/android-logo-mask.png");&
initTexture(&mAndroid[1], mAssets,
"images/android-logo-shine.png");&
bool BootAnimation::android()
initTexture(&mAndroid[0], mAssets,
"images/android-logo-mask.png");
initTexture(&mAndroid[1], mAssets,
"images/android-logo-shine.png");&&&&&&&&&&
这就是设置显示的前景图片和背景图片。
&&&&&&&&&&
接着看还有如下代码:
[cpp] #define USER_BOOTANIMATION_FILE
"/data/local/bootanimation.zip"&
#define SYSTEM_BOOTANIMATION_FILE
"/system/media/bootanimation.zip"&&
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE
"/system/media/bootanimation-encrypted.zip"&
#define USER_BOOTANIMATION_FILE
"/data/local/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE
"/system/media/bootanimation.zip"
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE
"/system/media/bootanimation-encrypted.zip"&&&&&&&&&
看宏名相信大家就知道了,这就是设置动画文件的名称了。为什么会又显示图片又设置动画显示呢,这个Android版本有关。显示两个图片:前景和背景图片是在1.5版本用,后来就改为了设置动画文件,就是:bootanimation.zip,是zip格式的,这个文件包含三个内容:两个目录:part0和part1,一个文件desc.txt。
两个目录用来包含要显示的图片,分为第一阶段和第二阶段。剩下的文件就是设置关于如何显示的信息:
示例如下:
480 800 15
具体的含义如下:
&480--width of the image, 800--height of the
image, 15--frames of second
& p 1, display one time
& p 0, display recycling till handset power on
finished,相信大家懂了!呵呵。
你可以制作自己的bootanimation.zip文件放置在合适的目录下,这样可以代替默认的开机界面:这里说的合适的目录就是上面的宏定义,大家都懂^_^!
怎么制作bootanimation.zip文件呢?和上面一样创建两个目录和一个文件,然后使用软件或者是命令行大包即可
zip -r -0 bootanimation.zip part0 part1 desc.txt
至此,自定义开机画面就完成了!
android4.0.3
的虚拟机开机时没看到1和2中的画面,按3中将图片替换后重新编译,搞定。由于动画效果没有变,所以直接替换图片就行了,代码没改。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。android启动之子系统切换
转载请注明文章出处和作者!
出处:http://blog.csdn.net/xl
大家多多支持偶家媳妇的网店:
作者:大熊(Xandy)
在android系统中有好几个子系统(recovery、factory及power off charge),那么这些子系统是如何与主系统之间进行切换的呢?
(recovery系统的切换与启动已经在另一篇博客里写过了
http://blog.csdn.net/xl/article/details/8517918
今天理了一下factory这个子系统启动过程,现在将其记录如下
由于目前所用的平台方案是MTK的6572,代码路径等会和其它的方案不一样
先来看一个图:
进入factory子系统与recovery系统不同的是:
factory:是在init这个进程中激活并启动的
recovery:则是通过bootcmdline跳转到相应的地址上启动的
2、lk(uboot)检测factory mult key
在mediatek/platform/mt6572/lk/factory.c这个文件中有如下代码
BOOL factory_check_key_trigger(void)
ulong begin = get_timer(0);
printf("\n%s Check factory boot\n",MODULE_NAME);
printf("%s Wait 50ms for special keys\n",MODULE_NAME);
/* If the boot reason is RESET, than we will NOT enter factory mode. */
if(mtk_detect_pmic_just_rst())
while(get_timer(begin)<50)
if(mtk_detect_key(MT65XX_FACTORY_KEY))
printf("%s Detect key\n",MODULE_NAME);
printf("%s Enable factory mode\n",MODULE_NAME);
g_boot_mode = FACTORY_BOOT;
//video_printf("%s : detect factory mode !\n",MODULE_NAME);
return TRUE;
return FALSE;
}当检测到factory key按下时会在这里设置g_boot_mode = FACTORY_BOOT;g_boot_mode是一个typedef类型的全局变量
类型定义如下:
typedef enum
NORMAL_BOOT = 0,
META_BOOT = 1,
RECOVERY_BOOT = 2,
SW_REBOOT = 3,
FACTORY_BOOT = 4,
ADVMETA_BOOT = 5,
ATE_FACTORY_BOOT = 6,
ALARM_BOOT = 7,
#if defined (MTK_KERNEL_POWER_OFF_CHARGING)
KERNEL_POWER_OFF_CHARGING_BOOT = 8,
LOW_POWER_OFF_CHARGING_BOOT = 9,
FASTBOOT = 99,
DOWNLOAD_BOOT = 100,
UNKNOWN_BOOT
} BOOTMODE;
可以看出这里定义的FACTORY_BOOT模式的&#20540;为4!
3、kernel中启动init进程
lk(uboot)引导内核之后,我们来看看在kernel/init/main.c中这个文件中的kernel_init这个函数,这是一个线程回调函数,
在同文件中的rest_init函数中
kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
注册到线程中去并得到执行
在kernel_init中有如下代码:
if (!ramdisk_execute_command)
ramdisk_execute_command = "/init";
if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
ramdisk_execute_command = NULL;
prepare_namespace();
}可以看出这里将/init这个根目录中的bin文件路径传递给了ramdisk_execute_command这个全局的字符指针,另外根目录中的init bin文件是
打包到ramdisk.img中的(请查看android编译后相应的root目录下的文件)
再来看看init_post这个函数中的如下代码:
if (ramdisk_execute_command) {
run_init_process(ramdisk_execute_command);
printk(KERN_WARNING "Failed to execute %s\n",
ramdisk_execute_command);
在这里内核就引导进入到用户空间的程序了
另外在mediatek/platform/mt6572/kernel/core/mt_boot.c这个文件中有如下代码:
/* create proc entry at /proc/boot_mode */
create_proc_read_entry(boot_mode, S_IRUGO, NULL, boot_mode_proc, NULL);
在这里创建了一个名为“boot_mode”的属性,用于内核和用户空间的init程序传递参数!
4、init进程
system/core/init/init.c
这是生成根目录中init bin的源码
在这个文件的main函数中对启动所需的各种资源进行了准备和初始化……
这里有如下代码:
static int is_factory_boot(void)
char boot_
fd = open("/sys/class/BOOT/BOOT/boot/boot_mode", O_RDWR);
if (fd < 0) {
printf("fail to open: %s\n", "/sys/class/BOOT/BOOT/boot/boot_mode");
s = read(fd, (void *)&boot_mode, sizeof(boot_mode));
close(fd);
if(s <= 0){
ERROR("could not read boot mode sys file\n");
// Factory Mode, &#39;4&#39;
// ATE Factory Mode, &#39;6&#39;
if ((boot_mode != &#39;4&#39;) && (boot_mode != &#39;6&#39;)){
ERROR("Unsupported factory mode\n");
printf("Factory Mode Booting.....\n");
"/sys/class/BOOT/BOOT/boot/boot_mode"这个路径的属性文件是在内核中的mt_boot.c这个文件中创建的,在init中读取这个文件的属性从而获得系统启动状态
可以看出当boot_mode被设置成“4”时(对应前面提到的FACTORY_BOOT = 4)就会进入到factory子系统了
if (is_factory_boot())
ERROR("This is factory boot");
property_set("sys.mtk.no.factoryimage","1");
init_parse_config_file("/factory_init.rc");
INFO("reading project config file\n");
init_parse_config_file("/factory_init.project.rc");
}在这里加载factory_init.rc用于启动factory下所需的一些服务或工具。
另外关机充电功能的实现也是按照这种架构实现的!您现在的位置: >
安卓手机开机启动项怎么设置?跟电脑区别是?
  Q:安卓手机开机启动项怎么设置?跟电脑的开机启动有什么区别呢?
  A:那么安卓手机的开机启动时需要借助Autostarts软件的,那么软件的话与电脑上的msconfig是一样效果的,主要也是分析你的手机系统有那些程序是自动启动。那么用户可以通过该软件对手机中的一些系统进行禁止启动,从而达到降低手机内存运转的可能,本软件已经是经过汉化的了。请放心使用吧。
  那么在安装了以下的软件之后可以对日历、即时消息、日历存储、谷歌拼音输入、Google Partner Setup、Gmail存储、Google地图和高级设置设置禁止启动,但是闹钟、Google Talk服务和信息、网络地点都是要开启的哦。不要搞错了。
相关文章:电脑 问答 安卓手机 怎么设置 安卓手机开机启动项怎么设置 开机启动项怎么设置 开启启动项
图解新闻:
最新攻略:
24小时更新:
热门排行本周本月
推荐文章本周本月

我要回帖

更多关于 安卓系统的ram 更改 的文章

 

随机推荐