android+4.4+img,重新打包boot.img时出错(Android)

我有Nexus 5和AOSP ROM 4.4.4.

我正试图从设备“拉”boot.img,解压缩,编辑“init.rc”,将其重新打包到boot.img并将其刷新到设备.

我遵循了许多指南,但没有一个与我有相同的场景:

>设备分区是mmcblck所以从ls -l /dev/block/platform/msm_sdcc.1/by-name/我得到的启动是/ dev / block / mmcblk0p19:

lrwxrwxrwx root root 1971-02-28 21:30 boot ->

/dev/block/mmcblk0p19

>我使用以下命令创建了boot.img:cat / dev / block / mmcblk0p19> /mnt/sdcard/boot.img并将此boot.img拉到我的电脑上.这个boot.img大概是23 MB.

>我使用http://droidcore.blogspot.co.il/2012/12/how-to-edit-initrc-in-android.html中的工具unmkbootimg boot.img并获得了2个文件:initramfs.cpio.gz,大约500 KB,kernel.gz大约是8.4 MB.我得到的细节是:

Kernel size 8405280

Kernel address 0x8000

Ramdisk size 498992

Ramdisk address 0x2900000

Secondary size 0

Secondary address 0xf00000

Kernel tags address 0x2700000

Flash page size 2048

Board name is “”

Command line “console=ttyHSL0,115200,n8 androidboot.hardware=hammerhead

user_debug=31 maxcpus=2 msm_watchdog_v2.enable=1”

Extracting kernel.gz

… Extracting initramfs.cpio.gz …

All done.

To recompile this image, use:

mkbooting –kernel kernel.gz –ramdisk initramfs.cpio.gz –base 0x26fff00 –cmdline ‘console=ttyHSL0,115200,n8 androidboot.hardware=hammerhead user_debug=31 maxcpus=2 msm_watchdog_v2.enable=1’ -o new_boot.img

>我使用以下命令解压缩initramfs.cpio.gz:gunzip -c initramfs.cpio.gz | sudo sh -c’cd ../&& cpio -i'(从http://www.wiki.xilinx.com/Build+and+Modify+a+Rootfs开始)并获得了许多文件,其中包含init.rc.我编辑了这个文件.

>我使用以下命令重新打包initramfs.cpio.gz:sh -c’cd ../&& sudo找到. | sudo cpio -H newc -o’| gzip -9> new_initramfs.cpio.gz并获得此文件~500KB.

>现在我使用以下命令mkbootimg这两个文件:./ mkbooting –kernel kernel.gz –ramdisk initramfs.cpio.gz –base 0x26fff00 –cmdline’console = ttyHSL0,115200,n8 androidboot.hardware = hammerhead user_debug = 31 maxcpus = 2 msm_watchdog_v2.enable = 1′-o new_boot.img我得到了boot.img,大约是8.5 MB

>现在将引导闪存到设备,设备卡在第一个屏幕上(不启动)

我的问题是:

>怎么了?

>我的新boot.img只有8.5 MB而不是23 MB(原始版本),这是正常的吗?

感谢你们!

*************我发现了问题*************

解决方案是:

我从这里使用了unmkbootimg:http://whiteboard.ping.se/Android/Unmkbootimg

我运行unmkbootimg后得到了这个评论:

*** 警告 ****

此图像使用非标准mkbootimg构建!

OFF_KERNEL_ADDR为0xFD908100

OFF_RAMDISK_ADDR是0x00200100

OFF_SECOND_ADDR是0xFE800100

请使用上述值修改mkbootimg.c以构建映像.

所以我按照这里的说明:https://gist.github.com/jberkel/1087757,现在它的工作原理!

解决方法:

我无法回答第一个问题,但如果我是你,我会跳过第4步和第5步并验证unmkbootimg / mkbootimg进程是否正确.只有经过验证,我才能解决cpio进程,最后是init.rc编辑.

对于第二个问题,google的官方boot.img为8.64MB,所以我猜大小​​没有问题.

标签:android,linux,linux-kernel,build,boot

来源: https://codeday.me/bug/20190708/1402310.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值