基于android2.3.5系统:Linux如何启动Andriod的守护进程init

基于Linux与Busybox的Reboot命令流程分析 这段时间,在忙到一个项目时,需要在busybox中用到reboot命令,开始在busybox中的shell中输入reboot命令,始终如下的信息,然后就停止在那里了,无法重启...为了彻底的弄明白这个问题,我在网络上找了很久,终于有个人写的一个reboot流程分析,我就借花献佛.在这里重新分析下busybox是如何运行这个命令 阅读详情

***************************************************************************************************************************
作者:EasyWave                                                                                 时间:2013.07.28

类别:Android系统源码分析                                                            声明:转载,请保留链接

注意:如有错误,欢迎指正。这些是我学习的日志文章......

***************************************************************************************************************************

一):Linux是如何Andriod的呢

    我们都知道在Linux系统启动文件系统的时候,一般会在Linux内核中指定command line,如下所示:

从图片中我们可以看到,在linux内核的配置中,有个Boot options的选项,进入之后,我们可以看到有这样的一行命令:

console=ttySAC0 root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc

这行非常重要,要想成功的启动Andriod系统,最需要关注的是init=/linuxrc,这个在后面详细的讲解,现在我们来看看内核启动之后,都会干些什么事情呢,具体的情参考我的另一篇博文:MACHINE_START and MACHINE_END Macro define   这里面详细的介绍了Linux是如何启动的,这里我们只关注这个函数:static noinline int init_post(void)如下所示:

我们可以看到,内核启动后,会自动的去找前面指定的init=/linuxrc,如果找不到的话,那么他就会去找下面的/sbin/init、/etc/init等等。而在andriod的文件系统中正好是在根目录下有个linuxrc文件,如何看到呢,我们可以通过命令解压ramdisk.img,步骤如下[以OK6410的Andriod系统为例]:

在命令行输入命令: cp ramdisk.img ramdisk.img.gz

之后创建一个文件夹,如:mkdir test,然后复制ramdisk.img.gz到新建的test文件中,之后采用命令:gunzip ramdisk.img.gz进行解压,最后才采用如下的命令:

cpio -i -F ramdisk.img 就将文件系统解压出来了,如下所示:

我们可以在test文件夹中看到一个linuxrc的文件,如下所示:

最后,我们打开linuxrc文件看看里面的内容,如下所示:

看到最后一行/init的吗,不错,Linux内核是通过command line来加载linuxrc,进而linuxrc中加载了/init的Andriod的守护进程init。

 

基于FT5x06嵌入式Linux电容触摸屏驱动 FT5x06系列ICs是单芯片电容式触摸屏控制器IC,带有一个内置的8位微控制器单元(MCU)。采用互电容的方法,在配合的相互的电容式触摸面板,它支持真正的多点触摸功能。FT5x06具有用户友好的输入的功能,这可以应用在许多便携式设备,例如蜂窝式电话,移动互联网设备,上网本和笔记本个人电脑。 阅读详情

相关推荐

linux启动第一个应用程序init && init启动android过程解析 && init.rc与inittab的关系 && android property和linux 环境变量

linux启动第一个应用程序init linux的运行顺序为uboot传递参数到内核,内核的第一个c编写的函数为start_kernel(),start_kernel来启动内核,最后到到rest_init()函数处完成内核启动过程。 rest_init()中启动第一个应用程序init,init程序的进程号为1,Linux使用了init进程来对组成Linux的服务和应用程序进行初始化。 ini

Radia的专栏 3686

android/linux中的第一个init程序的启动

目录1、编译android的ini程序2、kernel中执行/init程序的流程3、run_init_process()程序介绍 1、编译android的ini程序 2、kernel中执行/init程序的流程 在start_kernel的末尾处, 调用了reset_init() asmlinkage __visible void __init start_kernel(void) { ...... rest_init(); } reset_init()启了一个kernel线程kernel_init k

baron-周贺贺-代码改变世界ctw 2366

双目视觉三维重建:从相机标定到体积测量的完整流程与避坑指南

三维重建是计算机视觉中连接二维图像与三维空间的关键技术,其核心链路涉及相机标定、立体校正与视差估计。相机标定通过求解内参、畸变系数与外参,建立像素坐标与世界坐标的映射关系,是后续一切测量的基石;双目立体校正则利用极线约束将左右视图对齐,使视差搜索从二维降为一维。基于视差图,结合三角测量原理可生成高密度点云,再通过体素法或凸包法实现物体体积测量。该流程在工业包装体积检测、机器人抓取、自动驾驶感知等场景中具有广泛实践价值。本文以OpenCV为工具,从单目标定、双目标定到视差优化与点云处理,系统梳理双目体积测量流

weixin_34175509的博客 352

Android init 进程的启动(Android 10)

Android Init 进程的启动(Android 10)

wg_mlo的博客 507

双传声器法测量吸声材料的吸声系数(公式推导与解释)

在双传声器法中,通过测量两个位置的声压 p1和 p2​,可以分离出入射波和反射波的声压分量。双传声器法一般在阻抗管中进行,阻抗管的一端为平面波声源,另一端放置待测材料。两个传声器放置在靠近材料的阻抗管内,用于测量管道内的声压。双传声器法是一种常用于测量材料吸声系数的实验方法,通过在管道内使用两个传声器测量声波的入射和反射,来计算出材料的吸声系数。当测试样品较少时,测试时,需要交换两个传声器的位置,目的是为了相位校准。

m0_57407372的博客 1875

技能伤害继承英雄属性【War3地图编辑器】

风暴之锤跟随山丘之王的力量增长

ArYe 2297

一种较方便在Android中添加开机自启动的守护进程的方法

运用本方法的前提是你已经把android源码的sdk编译出来了。在你的Android源码目录下存在这两个目录: ./out/target/product/generic/ramdisk.img 和 ./out/host/linux-x86/sdk/android-sdk_e

3702

PID不够用?试试给PID加上‘预言’能力:史密斯预测器(SP)在温控、液位控制中的实战配置

本文深入探讨了史密斯预测器(SP)在温控和液位控制中的应用,特别针对大滞后系统的PID控制难题。通过详细解析SP的核心组件、参数整定技巧及进阶应用FSP,结合西门子PLC的实战配置方案,帮助工程师有效提升控制精度和系统稳定性。文章还提供了S7-1200的完整实现步骤和调试技巧,为工业自动化控制提供了实用解决方案。

weixin_33686714的博客 466

Linux启动流程

1 Bootloader 对于一般的ARM处理器,CPU上电或复位执行第一条指令所在地址,即第一段程序Bootloader的开始地址,Bootloader一般存于Nor-flash(XIP),支持芯片内执行。 Bootloader的功能可总结为:1)初始化CPU时钟,内存,串口等。2)设置Linux启动参数。3)加载Linux内核镜像。Android源码位于根目录下的/bootable文件夹。

我的嵌入式人生 3932

科研笔记:怎样写好博士论文?

博士论文外审避坑指南与写作要点 博士论文外审的核心关注点呈现5级优先级:科研成果(硬指标)>创新性>逻辑结构与场景合理性>文献综述与规范性>工作量验证。外审专家会重点核查:1)成果清单是否达标;2)创新点是否真实明确;3)章节逻辑是否自洽、应用场景是否细化;4)文献综述是否构建"研究坐标系";5)实验/理论支撑是否充分。需特别注意三大雷区:科学错误(直接挂稿)、伪创新、场景不合理。写作时应强化选题依据的场景细化,通过"发展阶段+跨领域对比"提升文献综述质量。

Grow into a more wonderful you 1064

数据结构实验1.2—高精度计算PI值(西工大)

这是数据结构第二题的题目,是让我们根据用户的需求来计算派的值 这是题目的详细描述,刚看到这道题的时候,我是真的头大,完全没有思路,于是查找了一些大佬的笔记后才开始编写 这是我在写这些代码是所运用到的数学反三角函数幂次展开式的知识。 下面是正确的代码以及我的一些见解,和需要注意的一些地方。希望能对你有所帮助。如有更加精简的算法,请在评论区留下你的算法!!!谢谢!!! #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdl

abcdef0623的博客 5831

创建Android守护进程(底层服务)

创建Android守护进程(底层服务) 前言 Android底层服务,即运行在 linux 下的进程,是 Android 系统运行的基础,完成 Android 或者说计算机最基本的功能。比如连接服务(包括 WIFI,BT 等等);比如 Android 的 adb 功能;比如存储监控等等。没有这些底层服务,上层也就没有了对应的功能。 Android 底层服务往往是常驻内存,时刻运行完成任务...

FamilyYuan的博客 9852

QT实现MQTT服务端(附完整源码)

QT实现MQTT服务端(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1252

分析Android 根文件系统启动过程(init守护进程分析)

Android 开机会出现3个画面:  1. Linux 系统启动,出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片);  2. Android平台启动初始化,出现"A N D R I O D"文字字样画面;  3. Android平台图形系统启动,出现含闪动的ANDROID字样的动画图片(start)。  1、开机图片(Linux小企鹅) (

佛系程序员 890

AI上推荐 之 NeuralCF与PNN模型(改变特征交叉方式)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 1万+

零基础学GPU KMD--8. 内存管理:GPU 显存与系统内存的协同​8.1 显存分配策略:GEM / TTM 原理

支持 VRAM、GTT(Graphics Translation Table)、SYSTEM 内存的动态迁移与缓存管理。:若缓冲区在 SYSTEM,TTM 分配 GTT 条目并建立页表映射,使 GPU 可直接访问。:系统内存中预留给 GPU 直接访问的区域,通过 GPU 的 MMU 做地址翻译。你需要我继续展开这一部分吗?​ 为复杂离散 GPU 设计,应对大容量 VRAM、多内存域、显存迁移等问题。:重量级、功能全,适合大容量、多内存域的离散 GPU,强调显存迁移与统一管理。

amy_mhd的博客 185

android开机启动流程说明

第一步:启动linux   1.Bootloader -- uboot   2.Kernel -- linux2.6   第二步:android系统启动:入口为init.rc(system\core\rootdir)   1./system/bin/service manager: Binder 守护进程;   2.Runtime;   3.Zygote :app-

快乐&&平凡 1957

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Android(1.5) 开机图片/文字/动画 修改

<br /> <br />Android 开机会出现3个画面:<br />a. Linux 系统启动,出现Linux小企鹅画面(reboot);<br />b. Android平台启动初始化,出现"A N D R I O D"文字字样画面;<br />c. Android平台图形系统启动,出现含闪动的ANDROID字样的动画图片。<br /> <br />1  开机图片(Linux小企鹅) <br />Linux Kernel引导启动后,加载该图片。<br />/kernel/trunk/drivers/v

chenzhencz的专栏 700

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 开机图片/文字/动画 修改

Android 开机会出现3个画面: a. Linux 系统启动,出现Linux小企鹅画面(reboot); b. Android平台启动初始化,出现"A N D R I O D"文字字样画面; c. Android平台上层图形系统启动,出现含闪动的ANDROID字样的动画图片(start)。 1/ 开机图片(Linux小企鹅) Linux Kernel引导启动后,加载该图片。 /ke...

50

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android使用socket使底层和framework通信

一般的native和framework的通信是通过jni,但是这一般只是framework调用native,native如果有消息要怎样通知上层呢?android中GSP模块提供一种解决思路,但是实现有些复杂,这里介绍一种使用socket通信的方法可以使native和framework自由通信,具体实现如下: android中使用jni对linux中的socket进行了封装。使用起来十分的方

沧海一声笑的专栏 2298

Node.js一小时入门:从环境搭建到核心实战操作

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,其核心原理在于将JavaScript从浏览器中解放出来,使其能够在服务器端执行。这一特性赋予了JavaScript全栈开发能力,技术价值在于统一了前后端的开发语言,显著提升了开发效率与协作流畅度。在应用场景上,Node.js凭借其非阻塞I/O和事件驱动架构,尤其适合构建高并发的I/O密集型应用,如实时聊天、API服务和数据流处理。本文聚焦于Node.js的快速上手,通过nvm进行多版本管理,有效规避了常见的安装错误,并指导读者完

weixin_30553777的博客 461

Android 守护进程的实现方式

原文链接: http://melove.net/blog/2017/03/android-daemon-service-1488942411000.html 在我们进行应用开发时,会遇到上级的各种需求,其中有一条 刚需:后台保活,更有甚者: 我要我们的应用永远活在用户的手机后台不被杀死 —— 这都 TM 的扯淡 除了系统级别的应用能持续运行,所有三方程序都有被杀死的那一天!当然

yangChong 2116

Android和Linux kernel发展史

Android和Linux kernel发展史 英文名 中文名 Android系统版本 发布时间 Linux kernel内核版本 备注 Astro 铁臂阿童木 Android  beta 2007年11月5日 未知 它作为一个面向开发者的软件开发包(SDK)进行发布。 Wind Up Robots 发条机器人 1.0 2008年9月2

zaizaishan的专栏 1797

busybox1.19.3编译错误解决办法

*************************************************************************************************************************** 作者:EasyWave

嵌入式与人工智能天地 1万+
上一篇: Linphone-Android环境的编译
下一篇: 基于glib2.12.13编译出现的问题总结
wang-bob
博客等级 码龄20年 356粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值