如何编辑boot.img里面的ramdisk

作者&投稿:诗知 (若有异议请与网页底部的电邮联系)
如何编辑boot.img里面的ramdisk~

首先你要有一个用户解锁fastboot的手机,这样才能允许你刷入第三方ROM2 q$ B) w; c6 _% z* i: o3 M8 y 其次你要能找到当前版本所对应的boot.img或sec_boot.img(带签名),通常能拿到的也就是刷机包里面解出来的sec_boot.img,通过cat mtd出来的

Ramdisk.img就在Tools工具下。而现在,我们是针对真机提取Ramdisk,修改相关文件,再将其放回去,这样以后Android设备启动时,加载的都是已经修改过的Ramdisk镜像了。我们不会去直接用Tools目录下的Ramdisk,因为很可能你的Boot镜像是已经修改过的,你只不过想在其基础上进行进一步修改而已。1提取好,进入正题,本文主要以修改boot.img中的ramdisk为例,但是其他的修改原理都是相通的。首先,我们要把boot镜像从设备中提取出来,方法就是在上一篇文章中谈到的,先去adb shell中cat /dev/mtd/mtd2 > /sdcard/root.img然后adb pull /sdcard/root.img ./这样就把root.img拷贝到本地目录下了。好,接下来的步骤,可要看仔细了,错了一点,就完全不对路了。我们已经介绍过,boot.img的组成结构是+—————–+ boot header 1 page+—————–+ kernel n pages+—————–+ ramdisk m pages+—————–+ second stage o pages+—————–+那我们要做的就是把这几个部分分别分离出来。具体的分离原理并不是很难,就是特别麻烦。所以建议大家都用现成的脚本来做。点击unpack下载分离的脚本,点击repack下载重新打包的脚本。好,我们现在先进行镜像分离。用命令./split_bootimg.pl boot.img成功执行后,可以得到两个文件,一个是boot.img-kernel,另一个是boot.img-ramdisk.gz。我们这里以修改ramdisk为例,所以将其解包% mkdir ramdisk% cd ramdisk% gzip -dc ../boot.img-ramdisk.gz cpio -i% cd ..解包之前新建一个文件夹放解包出来的文件,然后进入这个文件夹执行gzip和cpio的命令。至于原理,同上,请参考两年前的这篇文章。2 生成新img好,接下来你就可以做你想做的任何修改了,包括init.rc之类的进程方面的修改,或者丢一个什么东西进去,或者其他。只需要确保你做的修改没有问题就行。修改完成后,自然就是要将其重新还原成img包了,这时repack脚本就派上用场。用命令repack-bootimg.pl boot-new.img就可以生成新的boot-new.img了。3 刷入新img生成了新的img后,我们如何在系统上应用我们的新boot.img呢?首先,把img文件放到sdcard上去adb push ./boot_new.img /sdcard然后执行这两个操作# cat /dev/zero > /dev/mtd/mtd2# flash_image boot /sdcard/mynewimage.img 执行第一个操作时,可能会提示你write: No space left on device 这个信息没关系,不用管它。两个命令都执行后,最后adb shell reboot即可。如果重启顺利,那么恭喜你,你的新镜像刷成功了,此时的ramdisk自然也是新的ramdisk了。4 刷boot镜像有问题?其实到这里,才是俺想发挥的地方。上面介绍的所有步骤,有两个特点4.1 国外友人上都介绍过4.2 G1上成功率最高所以如果你是用Magic或者Hero,有一定几率会出线重启之后,画面就停留在 HTC 或者Android那里,不会进入系统。此时你必须拿出电池重新开机,按照我这篇文章所讲的方法刷一次recovery image,才能正常进入系统。如果你真的遇到这种情况,就说明上面介绍的这个方法不适合你,那么,还有没有别的方法让系统boot我们自己的boot image呢?当然有。在这篇文章中,我们介绍了有很多第三方ROM供我们刷机,从而达到更多功能或者获得root权限的目的。其中,我们介绍了里面有一个update.zip的东西,如果亲自刷过机的朋友就知道这是什么文件。我同时也介绍了,update.zip里面就是要添加到你的system中的各种工具,其中就包括了boot.img。也就是说,我们可以自己做一个属于自己的ROM,其中包括我们自己的boot.img。

首先你要有一个用户解锁fastboot的手机,这样才能允许你刷入第三方ROM
其次你要能找到当前版本所对应的boot.img或sec_boot.img(带签名),通常能拿到的也就是刷机包里面解出来的sec_boot.img,通过cat mtd出来的不知道行不行=。=
工具:
split_bootimg.pl google一下,很好找
mkbootfs和mkbootimg 可以从网上下,最好是自己直接编译

1)sec_boot.img是经过签名的,需要把文件前0x1000个字节删除,也就是ANDROID! 8个字符前面所有字节删除,保存为boot.img
2) 运行perl split_bootimg.pl boot.img解出kernel和ramdisk文件,同时记下运行结果中的“Command line: vmalloc=384M mem=2044m@0x200000。。。。”一长串字符备用
3)运行指令把ramdisk的文件解出来
mkdir ramdisk
cd ramdisk
gzip -dc ../boot.img-ramdisk.gz | cpio -i
cd ..
4)修改其中的文件,例如我觉得default.prop里面的persist.sys.usb.config=manufacture,adb不太爽,想改成=adb,修改保存。如果你想adb有root权限的话,就去改ro.secure和ro.debuggable
5)重新打包
mkbootfs ./ramdisk | gzip > ramdisk-new.gz
当然如果你自己编译的mkbootfs也没有加到path里,就把编译完的程序考到当前目录,运行./mkbootfs...
生成boot-new.img
mkbootimg --cmdline '单引号里面这一段拷贝刚才记下的Command line冒号后面的一长串' --kernel boot.img-kernel --ramdisk ramdisk-new.gz -o boot-new.img
6) 现在如果把生成的boot-new.img直接刷进去,手机就起不来了,问题在于kernel,ramdisk,second stage,tags的地址,
自己编译的mkbootimg查看一下.c文件就知道base=0x10000000,生成的boot-new.img是按照这个规则来的:
kernel地址=base + 0x00008000,ramdisk地址=base + 0x01000000,
second stage地址=base + 0x00f00000,tags地址=base + 0x00000100。
这跟原始sec_boot.img里面的地址是不一样的,本想找到正确的base值,但原始img的几个地址并非此规律,拿不到源码只能干瞪眼喽,
最简单的办法就是用16进制编辑器将boot-new.img对应的4个地址修改为原始值,如图:

首先你要有一个用户解锁fastboot的手机,这样才能允许你刷入第三方ROM2 q$ B) w; c6 _% z* i: o3 M8 y
其次你要能找到当前版本所对应的boot.img或sec_boot.img(带签名),通常能拿到的也就是刷机包里面解出来的sec_boot.img,通过cat mtd出来的不知道行不行=。=
工具:: I t' w H' S, [0 S! ~7 F
split_bootimg.pl google一下,很好找& P* L9 R0 g, G
mkbootfs和mkbootimg 可以从网上下,最好是自己直接编译!


thinkbook14g3ITL如何设定通用boot模式
thinkbook14g3ITL设定通用boot模式在bios界面进行操作。按下电脑开机键,然后连续不停的按键盘的F2按键进入到bios的界面(不同电脑进入BIOS方式略有不同);进入到bios的界面,使用方向键选择“boot”;进入boot的设置界面,查看当前界面中bootmode当前的选项是否为uefi,也就是uefi启动模式。

system.bin和boot.bin怎么拷贝在一起改成.i
题主是否想询问“system.bin和boot.bin怎么拷贝在一起改成.i的文件”如下:1、打开Hex编辑器,将system.bin文件打开。2、在system.bin文件的末尾添加boot.bin文件的内容。可以使用Hex编辑器的复制和粘贴功能将boot.bin的内容添加到system.bin的末尾。3、保存修改后的system.bin文件,并将文件名改为.i...

安装XP系统后修改XP的boot.ini,恢复98的启动条,但是按了以后,不认98...
你的安装顺序乱了。1这种情况下C盘要fat32的格式,先装用dos的命令,sys A: c:2用XP的安装光盘进故障控制台,修复启动项 3 修改boot.ini的内容:[boot loader]timeout=8 default=multi(0)disk(0)rdisk(0)partition(1)\\WINDOWS [operating systems]multi(0)disk(0)rdisk(0)partition(1)\\WINDOW...

boot文件怎样修改能从winPE启动?
Windows PE仅包括可用Win32 API的子集(包括I\/O(磁盘和网络)和核心Win32 API)。如果Win32下运行的服务基于Win32 API子集,则它在Windows PE是否可用需具体分析。这里不详细列出Windows PE不支持的API了,反正rundll32.exe和shell.dll等是不被支持的,想要在Windows PE下面玩Quake的朋友还是趁早放弃。编辑本段Windows ...

iboot可以读取修改吗
不可以读取修改。根据查询iboot官网得知,iBoot的源代码虽然开放,但是苹果公司并不允许随意修改和使用。开发者只能使用iBoot的源代码进行学习和研究,不能将其用于商业用途。iBoot技术也可以让各个公司远程引导PC,并无需改变Windows或Linux软体。

boot.ini损坏如何修复
[boot loader]timeout=15 default=multi(0)disk(0)rdisk(0)partition(1)\\WINDOWS [operating systems]multi(0)disk(0)rdisk(0)partition(1)\\WINDOWS="Microsoft Windows XP Professional" \/noexecute=optin \/fastdetect 保存成的名称就是boot.ini,然后放到C盘,另外你的I盘是第几个盘,C盘装的什...

VB 怎样打开C:\\boot.ini
clsName, key, "", buf, BufSize, FileName)Start = 1 GetValue = RetStr()End Function Private Function RetStr() As String Dim i As Long i = InStr(Start, buf, Chr(0))If i > Start Then RetStr = Mid(buf, Start, i - Start)End If Start = i + 1 End Function ...

做系统开机出现Inva I id BOOT.INI file怎么办
您近来是否不断对Boot.ini文件进行修改?为确保在Windows Explorer中看到Boot.ini文件而开启Folder Options(文件夹选项)并在View(查看)菜单上选择Show hidden files and folders(显示隐含文件和文件夹)命令的繁冗操作是否已令您感到厌倦?更有甚者,您是否曾在对该文件进行编辑前忘记过先行取消其所具备的只...

BOOT.IIN文件通常放在C盘那个文件夹里?我的系统在C盘里.
就在C盘根目录下!不过你要设置系统文件可见才能够看到!打开C盘,然后点工具-->文件夹选项-->查看-->隐藏受保护的操作系统文件,把这个勾去掉就可以看到了。不过是boot.ini文件,不是你说的boot.iin 也可以这样打开这个文件:我的电脑属性-->高级-->设置(启动和故障恢复)-->编辑 呵呵,这样都...

双系统问题
统。由于格式化了C盘,其根目录下的Boot.ini丢失,因而有关Win 2000启动的信息也随 之丢失。如果我们为此而重装系统,那似乎是令人心烦的和难以忍受的。了解了Boot.i ni文件,我们就可以在C盘根目录下找到它,去掉其只读的属性,然后对其进行编辑。在 [operating systems]下加上如下信息:“multi(x)disk(x)rdisk(x)...

化隆回族自治县15392534289: 如何编辑boot.img里面的ramdisk -
主父史泻痢: 首先你要有一个用户解锁fastboot的手机,这样才能允许你刷入第三方ROM2 q$ B) w; c6 _% z* i: o3 M8 y 其次你要能找到当前版本所对应的boot.img或sec_boot.img(带签名),通常能拿到的也就是刷机包里面解出来的sec_boot.img,通过cat mtd出来的不知道行不行=.= 工具:: I t' w H' S, [0 S! ~7 F split_bootimg.pl google一下,很好找& P* L9 R0 g, G mkbootfs和mkbootimg 可以从网上下,最好是自己直接编译

化隆回族自治县15392534289: 怎么修改开机屏boot.img的rle文件?谢谢回复 -
主父史泻痢: boot.img有个initrd.gz ,gunzip解压,cpio再解开就可以看到logo.rle再图片格式转换,rle转为raw,再raw 转png,现在可以编辑了,再反过程打包成initrd.gz以上要在linux下进行.

化隆回族自治县15392534289: 如何解包/编辑/打包boot.img文件 -
主父史泻痢: ①在手机上sys下是可以看到init.rc的,但是修改完之后重启就自动恢复到boot.img中的默认状态,所以我们修改的不是这个文件,而是boot.img中的init.rc ②修改boot.img rom中是不可能直接看到init.rc这个文件的,因为它在boot.img中,如何解包...

化隆回族自治县15392534289: 如何解包/编辑/打包android系统的boot.img文件 -
主父史泻痢: 方法/步骤 boot映像并不是一个完整的文件系统,它是一种android自定义的文件格式,该格式包括了2K的文件头,后面紧跟着是用gzip压缩过的内核,再后面是一个ramdisk内存盘,然后紧跟着第二阶段的载入器程序(这个载入器程序是可选的...

化隆回族自治县15392534289: 如何修改boot.img使内核root -
主父史泻痢: root和内核完全没有关系,root是靠/system/xbin目录下的su文件的权限实现的,而内核是对于硬件的控制,root则是linux系统自带的命令,内核则是一个精简的linux系统,自带root指令集,两者并无关联.按照你的说法,你可以刷内核.那么何不卡刷super su 直接往xbin里写入su直接实现root呢?

化隆回族自治县15392534289: 如何修改win7中boot.ini内容 -
主父史泻痢: 一、鼠标单击“开始--运行”,运行窗口上键入 sysdm.cpl,然后单击“确定”.在“高级”选项卡上,单击“启动和故障恢复”下的“设置”.在“系统启动”下,单击“编辑”,这样即可对boot.ini文件进行编辑了.怎么修改boot.ini文件2...

化隆回族自治县15392534289: 如何手动编辑启动项文件(boot.ini). -
主父史泻痢: 那你就改一下,把以前的全删除,输入:[boot loader] timeout=3 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=AlwaysOff C:\GRLDR="GHOST V11.0" 然后重启,就OK,还不行,就百度联系我.

化隆回族自治县15392534289: 如何编辑boot.ini -
主父史泻痢: 方法一: 1、右击“我的电脑”,弹出的快捷菜单单击“属性”命令 2、在系统属性界面切换到“高级”标签 3、在启动和故障恢复下单击“设置”按钮 4、进入启动和故障恢复界面,单击“编辑”按钮 方法二: 1、打开“我的电脑”,在菜单...

化隆回族自治县15392534289: 如何修改Boot.ini -
主父史泻痢: 很好解决的. 虽然如此,你仍能开机;开机后,修改BOOT.INT为如下即可: [boot loader] timeout=0 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP ...

化隆回族自治县15392534289: 如何修改BOOT.INI 中的文字? -
主父史泻痢: 可借助命令行工具Bootcfg.exe对Boot.ini文件执行编辑操作.可针对系统等待时间(Windows在选择缺省操作系统前所等候的时间)进行修改, 并在现有基础上添加新的供选项目.如需启动Bootcfg.exe工具, 请依次执行下列操作步骤:依次点击Start(开始)和Run(运行), 并在Run(运行)对话框内输入cmd. 在命令行状态下输入bootcfg.exe. 执行bootcfg.exe /?命令以查看相关参数功能.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网