Fedora-ARM
全部博文(241)
分类: LINUX
2011-01-02 21:20:03
为了要分析G1的文件系统,用实际的手机上的文件系统来分析最有说服力。所以如何来提取的解包分析Gphone的文件系统呢?通过网上查找资料,很容易得到解决方法!
一、提取镜像文件。
要提取镜像文件,你同手机的超级终端连接必须得有root权限。也就是你用"adb shell"登录手机后的提示符为“#”,如果没有,你就运行su命令来获取。但是没有刷过机的一般没有这个权限。我的G1一到手就是刷上安卓网的2.2系统的,所以本上就有Root权限。
先在G1上插入SD卡,然后把G1和电脑通过USB相连。下载SDK,解包后,通过shell在tools目录下运行:
sudo ./adb kill-server
sudo ./adb shell
* daemon not running. starting it now *
* daemon started successfully *
# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00020000 "misc"
mtd1: 00500000 00020000 "recovery"
mtd2: 00280000 00020000 "boot"
mtd3: 05a00000 00020000 "system"
mtd4: 01e00000 00020000 "cache"
mtd5: 059c0000 00020000 "userdata"
mtd6: 10000000 00020000 "msm_nand"
# cat /dev/mtd/mtd1 > /sdcard/mtd1.img
# cat /dev/mtd/mtd2 > /sdcard/mtd2.img
这样 recovery和boot镜像都在你的SD卡上了。
二、释放镜像中的文件
以上提取的两个文件,其实内容是差不多的,但是 recovery是在boot被破坏时恢复系统用的,所以进入 recovery不会进入GUI,而是一个字符的恢复模式,并且比boot多了恢复时用的程序,这些对比我会在以后写出。因为这两个镜像差不多,所以解压也是一样。释放镜像要使用以下小工具: 。将镜像和以上四个工具放在同一个文件夹下,然后解压。
解压方法:
./split_bootimg.pl boot.img
mkdir ramdisk
cd ramdisk
gzip -dc ../boot.img-ramdisk.gz | cpio -i
cd ..
这样,在这个文件夹下,你会看到
ramdisk文件夹,就是释放出的启动用的ramdisk。
boot.img-kernel,就是系统的Linux内核了。
明天对比recovery和boot镜像的不同。
后天介绍镜像的制作和如何刷机。