我有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

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

  1. android数字提示错误,从服务器接收数据时出现Android错误

    我正在使用Android中的代码:以编程方式安装.apk. 我试图从服务器接收数据,以更新我的应用程序. 单击按钮后,应用程序崩溃. 如果您知道要解决这些错误很热,请告诉我. 我收到此错误: andr ...

  2. android room表关联,如何在首次运行时填充Android Room数据库表?

    我尝试了许多方法可以做到这一点,每个没有提供. 首先,我尝试使用'addMigrations'方法向Room中添加Migration实现,但发现它只在数据库升级期间运行,但不在创建时运行. 然后,我尝 ...

  3. 如何解包编译重新打包boot.img System.img(转自百度文库)

    http://wenku.baidu.com/link?url=ee8I_lrbqDSrSNLIg4HjneXsuQB13tzggjB-ZnjgDt_Ek_2ZeY6l8eF4g2N6NhYcB1Ht ...

  4. Android Studio(十二):打包多个发布渠道的apk文件

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  5. android应用程序的混淆打包(转)

    android应用程序的混淆打包 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android- ...

  6. Android studio使用心得(二)— 打包签名apk发布

    1.-–Android Studio菜单   Build->Generate Signed APK 2.--Create new.. 3.---跟eclipse里面一样,添加keystore 信 ...

  7. React Native Android端多环境自动打包

    文章目录 1.技术环境搭建 2.配置Android构建参数. 3.编辑复制文件到指定位置的脚本 4.Jenkins创建工程 5.下载nginx,配置相关参数.HTTPS证书 6.写iOS下载配置文件p ...

  8. flutter ios打包_Flutter通过BasicMessageChannel与Android iOS 的双向通信

    更多文章请查看 flutter从入门 到精通 本文章中的完整代码在这里 题记:不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼博过,尽力过,一切问心无愧. 通过 Flutter 来进行移动应用 ...

  9. Android Studio 使用教程(5)---打包apk

    Android Studio 使用教程(5)---打包apk 本章节讲述使用Android studio 打包apk的过程 1.Build -> Generate Signed APK...,打 ...

最新文章

  1. 上传数据,直接分析,这才是真正的生物云
  2. 《漫画算法2》源码整理-6 两数之和 三数之和
  3. vscode显示中文乱码问题
  4. java异步io_Java中的异步IO与异步请求处理
  5. hibernate映射-单向n-n关联关系
  6. PHP中mysql如何添加记录_PHP向MySql提交数据添加记录的简单代码_PHP教程
  7. hive内部表和外部表的区别_HIVE拉链表实现
  8. FRR BGP协议分析12 -- ZEBRA路由的处理1
  9. json转java对象_java对象与json对象间的相互转换的方法
  10. 三菱PLC 计数器C
  11. Alpha Test和Alpha Blend Shader两种处理透明的方法
  12. linux——CPU使用率、内存使用率、磁盘使用率等详解
  13. JavaScript hash 与 history 实现客户端路由的原理
  14. My Thirty-fifth Page - 最大二叉树 - By Nicolas
  15. IT民工,你的未来在哪里?
  16. canvas教程11-渐变
  17. c语言面试(c语言面试基础知识)
  18. 虚拟机中的linux系统无法识别SD卡
  19. V型反弹的名场面,荣耀能否在海外市场“荣耀”?
  20. CAJ转PDF,仅需5秒还免费,PDF文字还能复制

热门文章

  1. iMeta期刊推特官方帐号@iMetaJournal上线
  2. EST:西湖大学鞠峰组-污水厂病原菌与土著反硝化细菌是多重抗生素耐药基因的活跃表达者...
  3. IF10+的数据库文章!这里有5个案例,一起发起来?
  4. python使用numpy生成指定步长的浮点数序列
  5. R语言偏相关或者部分相关性系数计算实战:使用psych包计算(Partial Correlation)偏相关系数、拟合回归模型使用两个回归模型的残差计算偏相关性系数
  6. R语言使用lm构建线性回归模型、并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型预测中系统误差的一个例子 、自定义函数计算R方指标和均方根误差RMSE
  7. R语言readLines函数、n.readLines函数、readline函数读取文本文件实战
  8. Li‘s 影像组学视频学习笔记(28)-ROI/病灶体积的计算、Li‘s have a solution and plan.
  9. 3d 自动生成物体_Adobe发布3D建模、AR内容生成应用Scantastic
  10. R语言officer、flextable包生成word报告