android启动流程bootrom Android ROM定制:boot.img、recovery解包打包

2022-03-04 10:15:02 数码极客 阅读 投稿:

android启动流程bootrom Android ROM定制:boot.img、recovery解包打包(图1)

解答:

1、Android的核心替换大家都知道,在boot.img里,那么如何在WINDOWS里解锁,LINUX自己跳过了。

2、首先是百度BOOTIMG.EXE,然后你就知道了,会有很多,感谢bootimg.exe的作者,它本来是华为机器的分解工具,但是我们也可以用它来分解boot.img,recovery.img等。好吧!先说这两个文件的依据,部分来源于网络。

3、以及引导和恢复映像的文件结构。

4、引导和恢复映像不是一个完整的文件系统。它们是一个android定义的文件格式,包括2K的文件头,后面是一个用gzip压缩的内核,再后面是一个ramdisk内存盘,然后是第二阶段的loader程序(这个loader程序是可选的,部分镜像可能没有)。在源代码Android-src/system/core/mkbootimg中可以找到一个名为bootimg.h的文件。

5、(用译者的话说,原文是一个名为mkbootimg.h的文件,但根据Android 2.1的代码,文件名应该改为bootimg.h)。

6、/*

7、** -

8、** |引导标题| 1页

9、** -

10、** |内核| n页

11、** -

12、** |内存磁盘| m页

13、** -

14、** |第二阶段| o页

15、** -

16、**

17、** n=(内核大小页面大小- 1) /页面大小

18、** m=(内存磁盘大小页面大小- 1) /页面大小

19、** o=(秒大小页面大小- 1) /页面大小

20、**

21、** 0.所有实体在闪存中都是页面大小对齐的

22、** 1.需要内核和ramdisk(大小!=0)

23、** 2.second是可选的(second_size==0 -没有秒)

24、** 3.在以下位置加载每个元素(内核、内存磁盘、第二个)

25、**指定的物理地址(kernel_addr等)

26、** 4.在tag_addr准备标签。内核参数[]为

27、**附加到标记中的内核命令行。

28、** 5.r0=0,r1=机器类型,r2=标签地址

29、** 6.如果second_size!=0:跳转到第二个地址

30、** else:跳转到内核地址

31、*/

32、Ramdisk镜像是最基本的小文件系统,包含了初始化系统所需的所有核心文件,比如:初始化init进程和init.rc(可以用来设置很多系统参数)等文件。如果您想了解有关本文档的更多信息,请访问以下网站:

33、http://git.source.android.com/?p=kernel/common . git;a=blobf=Documentation/file systems/ram fs-root fs-initram fs . txt

34、以下是包含在典型ramdisk中的文件列表:/init.trout.rc。/默认. prop。/proc。/开发。/init.rc。/init。/sys。/init .金鱼. rc。/sbin。/sbin/adbd。/系统。/数据

35、恢复映像包含一些附加文件,如名为recovery的二进制程序,以及一些支持该程序的资源图片文件(当您按下home电源组合键时,该恢复程序将运行)。

36、的典型文件列表如下:/res。/分辨率/图像

37、看到以上结构的时候就已经很奇特了,那么怎么来解开它,以及打包呢!马上揭晓!

37、

38、运行方法:

38、

39、下面一一说明功能中的参数。

39、

40、仅需要以上命令就会解开boot.img了!

40、

41、看图中的base基址是0x200000,cmdline命令行是“mem=211M console=null androidboot.hardware=qcom",page-size是2048,padding-size是4096,那么都要回编回去,接下来打包的时候就应该输入以下命令

41、

42、到这里就完全打包解包无压力了,额,recovery解包打包,就直接把他搞成boot.img封包后再搞回去就行了的。

42、

本文到此讲解完毕了,希望对大家有帮助。

加载中~
声明:速度百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系速度百科!1096846805@qq.com