android系统启动 Init进程

android系统启动

recovery升级模式:启动recovery分区内核和文件系统

正常启动模式: 引导内核和启动Android系统

android系统由uboot启动:

1、输入模式,输入了recover命令,重启uboot就会引导recover分区,

2、uboot启动的过程中会等待 按键输入,如电源 + 音量上键 进入recover模式

3、系统正常重启后,点击了系统升级,重启就会启动recover模式,升级下载的安装包

三种不满足就boot正常启动。

升级2种升级方式:

差量包升级

完整包升级

当升级完后,就会擦除掉recovery模式。

 

Android init 进程(系统守护进程)

在系统源码位置: system/core/init/init.c

当编译生成系统后,会放在文件系统根目录: /init,这里我链接自己手机输入:

adb root

adb devices

adb shell

ls -l

ps -A // 查看所有进程

           

在手机根目录可看到init,它是init.c生成的执行文件,ps -A查看系统的进程可以看到init进程为1。

下图为 init主要做的事情:

 

init的启动log信息也在 根目录/proc/kmsg

cat  /proc/kmsg

查看cpu的一些信息

cat  /proc/cpuinfo

获得环境变量信息:

getprop ro.hardware
getprop ro.revision

内核启动参数

cat  /proc/cmdline 

默认环境变量

cat default.prop

Init进程消息处理

1、根据系统中消息设置或者shell设置系统的prop

 2、守护系统服务 如果系统退出,重启系统服务

创建socket套接字服务:

 

设置prop

设置和处理prop消息流程图

例子

adb root 
adb shell
getprop // 查看所有prop设置
setporp propName value //向 propoty sevice sockt发生消息,调用setProp 设置prop参数

守护服务

 

init中signal_init_action 函数init时,触发sigchld_handler 的信号函数,同时创建

signal_fd 、signale_recv_fd 2个sokect ,并监听这2个socket。 通过 这2个套接字 init进程和子进程通信,重启服务。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值