空道 发表于 2015-6-25 14:54:34

Android 直接通过boot.img 查看内核版本

场景:某手机需要刷 指定内核版本的 rom,   而且又搜不到太多关于手机的信息, 只能刷官方系统   大海捞针 的时候!!!








Boot.img 结构体1./* 2. ** +-----------------+3. ** | boot header   | 1 page 4. ** +-----------------+ 5. ** | kernel          | n pages   6. ** +-----------------+ 7. ** | ramdisk         | m pages   8. ** +-----------------+ 9. ** | second stage    | o pages 10. ** +-----------------+ 11. ** 12. ** n = (kernel_size + page_size - 1) / page_size 13. ** m = (ramdisk_size + page_size - 1) / page_size 14. ** o = (second_size + page_size - 1) / page_size 15. **/ 1. struct boot_img_hdr2. {3.   unsigned char magic;4.   5.   unsigned kernel_size;/* size in bytes */6.   unsigned kernel_addr;/* physical load addr */7.   8.   unsigned ramdisk_size; /* size in bytes */9.   unsigned ramdisk_addr; /* physical load addr */10.   11.   unsigned second_size;/* size in bytes */12.   unsigned second_addr;/* physical load addr */13.   14.   unsigned tags_addr;    /* physical addr for kernel tags */15.   unsigned page_size;    /* flash page size we assume */16.   unsigned unused;    /* future expansion: should be 0 */17.   18.   unsigned char name; /* asciiz product name */19.   20.   unsigned char cmdline;21.   22.   unsigned id; /* timestamp / checksum / sha1 / etc */23. }; 从上图的截图中可以分析Kernel_size = 0x30E520Page_size=0x1000Page_size 就是 Kernel_offset 复制出 kernel-zimge ,看过我的那篇<<boot-kernel Patch开启内核后门>> 的文章就知道一般的 zimge 是采用 gzip 压缩算法的,所以我们这里可直接在kernel-zimge 中搜 索16进制 “1F8B0800”定位到 要解压的数据部分, 将起始地址 0x3FE9到文件末尾都复制出来另存为 zimge.gz 文件,然后使用gunzip 解压就可以得到zimge 文件, 这个 zimge 就是最终的 kernel 文件了,(这里也可以直接使用7z 解压) 然后我们直接搜索字符串 “PREEMPT” 可快速 定位到 当前 内核版本

Dxer 发表于 2015-6-25 15:13:16

谢谢空道大师的指导和教育

hu007 发表于 2015-6-25 15:28:44

谢谢分享,下载收藏

menglv 发表于 2015-6-25 17:10:37

长知识了,收藏一个,谢谢楼主分享.

回忆无法挽留 发表于 2015-6-25 18:43:53

膜拜空道 大婶{:soso_e128:}

cxqdly 发表于 2015-6-25 19:08:38

空大能搞个新版的爱奇艺吗 目前vip版本都不好用了

非诚勿扰 发表于 2015-6-26 20:20:49

感谢大师,期待精彩不断!

醉后思念溢长 发表于 2015-6-26 22:16:20

感谢空道大神分享

qinccckencn 发表于 2015-6-26 23:02:59

谢谢分享,又長見識了,下载收藏

hy633624 发表于 2015-7-17 15:03:33

支持一下啊~~~~~~~~~~~~~~`
页: [1] 2
查看完整版本: Android 直接通过boot.img 查看内核版本