7495|4

854

帖子

0

TA的资源

五彩晶圆(中级)

楼主
 

如何快读打包生成ramdisk-uboot.img [复制链接]

有些老的android版本不会发现更新的文件,只有发现文件不存在的时候才会开始重新编译,所以为了安全起见,我们要手动删除掉ramdisk-uboot.img 和ramdisk.img 才行。
root@android2012-desktop:~/S5PV210-ics/android-4.0.3_r1# ./build_android.sh

                Build android for smdkv210


[[[[[[[ Build android platform ]]]]]]]

make -j2 PRODUCT-full_smdkv210-eng

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.3
TARGET_PRODUCT=full_smdkv210
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=IML74K
============================================
target Prebuilt:  (out/target/product/smdkv210/root/init.rc)
Target ram disk: out/target/product/smdkv210/ramdisk.img
mkimage -A arm -O linux -T ramdisk -C none -a 0x30A00000 -n "ramdisk" -d out/target/product/smdkv210/ramdisk.img out/target/product/smdkv210/ramdisk-uboot.img
Image Name:   ramdisk
Created:      Wed Jul 10 10:54:09 2013
Image Type:   ARM Linux RAMDisk Image (uncompressed)
Data Size:    163256 Bytes = 159.43 kB = 0.16 MB
Load Address: 0x30A00000
Entry Point:  0x30A00000
Total compile time is 84 seconds

[[[[[[[ Make ramdisk image for u-boot ]]]]]]]

Image Name:   ramdisk
Created:      Wed Jul 10 10:54:09 2013
Image Type:   ARM Linux RAMDisk Image (uncompressed)
Data Size:    163256 Bytes = 159.43 kB = 0.16 MB
Load Address: 0x30800000
Entry Point:  0x30800000

ok success !!!
点赞 关注
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460

回复
举报

854

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 
安装镜像制作工具 mkimage
# sudo apt-get install uboot-mkimage

这个是不能忘记的,否则制作ramdisk-uboot.img 肯定会失败的。
我把论坛当博客用,自己回答,自己解决问题。O(∩_∩)O~
 
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460
 

回复

854

帖子

0

TA的资源

五彩晶圆(中级)

板凳
 
安装镜像制作工具 mkimage
# sudo apt-get install uboot-mkimage

这个是不能忘记的,否则制作ramdisk-uboot.img 肯定会失败的。
我把论坛当博客用,自己回答,自己解决问题。O(∩_∩)O~
 
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460
 
 

回复

854

帖子

0

TA的资源

五彩晶圆(中级)

4
 
生成ramdisk-uboot.img和解压ramdisk-uboot.img

view plaincopy to clipboard


  • out/host/linux-x86/bin/mkbootfs out/target/product/903/root | out/host/linux-x86/bin/minigzip > out/target/product/903/ramdisk.img  
  • mkimage -A arm -O linux -T ramdisk -C none -a 0x20800000 -n "ramdisk" -d out/target/product/903/ramdisk.img out/target/product/903/ramdisk-uboot.img  

[c-sharp] view plaincopy


  • out/host/linux-x86/bin/mkbootfs out/target/product/903/root | out/host/linux-x86/bin/minigzip > out/target/product/903/ramdisk.img  
  • mkimage -A arm -O linux -T ramdisk -C none -a 0x20800000 -n "ramdisk" -d out/target/product/903/ramdisk.img out/target/product/903/ramdisk-uboot.img  





解压:
How to extract the ramdisk content from uboot format ramdisk image
假設有一包ramdisk "initrd.gz",使用u-boot下的mkimage建立uboot format ramdisk image (ramdisk-uboot.img)在原本的ramdisk image前加64 bytes檔頭資訊:

tools/mkimage -A arm -O linux -T ramdisk -C none -a 0x20800000 -n "ramdisk" -d initrd.gz ramdisk-uboot.img

可以用下面的指令 extract the ramdisk content (init.gz) from uboot format ramdisk image

dd if=ramdisk-uboot.img of=ramdisk.img.gz bs=1 skip=64

android编译后生成的ramdisk是一个gzip格式的文件
# file ramdisk.img
ramdisk.img: gzip compressed data, from Unix

那么先解压,因为后缀不是.gz,所以用-s 选项
gunzip -S .img ramdisk.img

这样生成了一个新文件ramdisk
查看是什么格式
# file ramdisk
ramdisk: ASCII cpio archive (SVR4 with no CRC)

ok,是一个cpio格式的文件
再次解压
先创建一个目录,假设叫rfs,并进入
# cpio -i -F ../ramdisk
512 blocks


  这下,你就能看见并操作ramdisk里面的内容了。当然你也可以直接在外面进行操作,但是还是建议把cpio解压缩出来的内容全部集中在一个文件夹里面,因为一会我们还要将其压缩成新的ramdisk.img。
  OK,现在开始修改步骤吧。用任何一款编辑器打开init.rc,首先在PATH那里加上你的Busybox安装路径,然后注释内容,我们要手工启动他们。
  # zygote {  # exec /system/bin/app_process  # args {  # 0 -Xzygote  # 1 /system/bin  # 2 –zygote  # }  # autostart 1  # }# runtime {  # exec /system/bin/runtime  # autostart 1  # }
  在这里需要注意,不要同时把两者都注释了,注释某一个,再试验手工启动它,如果两者同时注释我这里有问题,无法启动。
  好,接下来,使用下列命令重新打包成镜像
  cpio -i -t -F ../ramdisk.img > list
  cpio -o -H newc -O lk.img < list
  当前目录下生成的lk.img就是我们的新镜像了。使用自己的镜像启动emulator;

干这个破解到时挺有用的,还可以自己展开来打包,好像研究微软的就很少了。微软的貌似这样弄的比较少。山寨机的那些灌入垃圾程序就是这么做的。鄙视啊。
 
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460
 
 

回复

854

帖子

0

TA的资源

五彩晶圆(中级)

5
 
mkbootfs  这个工具生成了ramdisk.img ,ramdisk-uboot.img是ramdisk.img 的不压缩的格式而已。
 
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表