解答:
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、
本文到此讲解完毕了,希望对大家有帮助。