最近研究对了Android的boot.img的操作,将一些繁琐的东西整理了一下,发到了github:https://github.com/difcareer/BootImgTool/ 什么情况下,需要操作...boot.img: 自己编译的linux内核,需要解包boot.img,替换kernel文件后重打包,这样刷机才会生效。.../build.sh 使用tmp下的boot.img练手,解包: bin/unpack-bootimg.sh tmp/boot.img 此时tmp如下: ll tmp total 34944 -rw-r-...-r-- 1 andr0day staff 8.5M 4 16 19:14 boot.img -rw-r--r-- 1 andr0day staff 8.0M 4 16 19:30...ro.debuggable=0 改为ro.debuggable=1 重新打包: bin/repack-bootimg.sh tmp/boot.img-kernel.gz tmp/boot.img-ramdisk boot.img
编译的原理:在kernel目录下将编译生成的 kernel.img 和 resource.img 替换到旧的 boot.img 中。...以 RK3576 样机为例,编译时替换对应的boot.img及dts:其中 BOOT_IMG=...../rockdev/Image-rk3576_u/boot.img 这里指定的是旧的boot.img的路径,命令如下:导clang到环境编译后可以直接烧写kernel-6.1目录下的boot.img到机器的.../prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATHalias msk='make CROSS_COMPILE=aarch64-linux-gnu...单独编译Kernel生成boot.img在kernel-6.1目录下,通过自定义脚本msk编译并替换原有boot.img的kernel.img和resource.img,需指定旧版boot.img路径
在 Linux 里面有一个工具,叫 Grub2,全称 Grand Unified Bootloader Version 2。顾名思义,就是搞系统启动的。...menuentry 'CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu...grub2 第一个要安装的就是 boot.img。它由 boot.S 编译而成,一共 512 字节,正式安装到启动盘的第一个扇区。...BIOS 完成任务后,会将 boot.img 从硬盘加载到内存中的 0x7c00 来运行。由于 512 个字节实在有限,boot.img 做不了太多的事情。...这里需要注意,它不是 Linux 的内核,而是 grub 的内核。
1.在电脑下载系统包(全量包)小米参考:如何获取MIUI最新系统包 - kenvie(其他品牌请自行到官网下载)
------------------------------------------------------ 1.使用bootimg.exe解包内核(文章末尾提供下载链接,bootimg.exe需要和boot.img...在同一目录下,然后打开系统cmd.exe,使用cd命令到达你放置bootimg.exe和boot.img的文件夹下,然后运行解包命令bootimg --unpack-bootimg) 2.进入解包目录(...即你放置bootimg.exe和boot.img的文件夹了里),找到initrd文件夹进入。...persist.service.adb.enable=1 如果ro.secure=0 就是允许我们运行adb root命令,通常内核root就是指ro.secure=0 将ro.secure=1修改成ro.secure=0,之后打包回来boot.img
而我也算是作为初入门的Linux开发者,本次也难免要经历这个过程。...Linux的开发环境一般使用Linux机器进行开发编译等工作,这个Linux机器可以是实体机,也可以是虚拟机,飞凌官方已经将虚拟机和整个开发环境,包括需要用到的一些工具等都打包起来了,很方便。.../gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi.tar.xz 编译成功 编译完会在/home/forlinx/OK113i-linux-sdk/...out/t113_i/OK113i/longan/路径下生成 boot.img boot.img 可用于在线单独更新内核,用户需将其从虚拟机中拷贝到 OK113i 板卡/home 路径下,之后执行:dd...if=/home/boot.img of=/dev/mmcblk0p4 conv=fsync 完成之后,重启板卡,即替换内核 注意单独编译内核只针对内核源码进行编译,影响驱动,适用于仅修改内核时进行编译
本文基于搭载瑞芯微RK3568处理器的OK3568-C开发板Linux 4.19.206标准开发环境开展测试,其网络基础稳定,可满足TFTP协议传输需求。...需提前将系统镜像(boot.img、rootfs.img)放入TFTP服务器目录,并确保开发板与服务器网络互通——这是后续烧写操作的前提。...2、查询eMMC分区表,明确烧写目标飞凌嵌入式RK3568开发板提供 8/16/32/64GB多规格的eMMC存储选项,本次测试采用标准Linux分区规划,通过mmc part命令可查看完整分区结构,明确...boot.img(引导镜像)和rootfs.img(文件系统镜像)的目标分区。...3、TFTP烧写boot.img至boot分区利用tftpflash命令可直接将TFTP服务器中的boot.img加载至 eMMC的“boot”分区(3号分区)。
本文基于 OK3568-C Linux 4.19.206 标准开发环境开展测试,该开发板以飞凌 FET3568-C 核心板为核心,搭载 Rockchip RK3568 四核 Cortex-A55 处理器...需提前将系统镜像(boot.img、rootfs.img)放入 TFTP 服务器目录,并确保开发板与服务器网络互通——这是后续烧写操作的前提。图:飞凌嵌入式RK3568核心板1....查询 eMMC 分区表,明确烧写目标OK3568-C 提供 8/16/32/64GB 多规格 eMMC 存储选项,本次测试采用标准 Linux 分区规划,通过mmc part命令可查看完整分区结构,明确...boot.img(引导镜像)和rootfs.img(文件系统镜像)的目标分区。...通过 TFTP 烧写 boot.img 至 boot 分区利用tftpflash命令可直接将 TFTP 服务器中的boot.img加载至 eMMC 的“boot”分区(3 号分区)。
只有修改boot.img中的内容才可以。 0x01:获取boot.img 我本地就有OTA文件,所以可以直接从里面解压出boot.img,如果没有OTA文件,那就是只能从手机中导出boot.img。...0x03:boot.img相关 虽然Image Kitchen for Android帮我们做了解压,修改,打包的事情,但是我们也可以进一步了解一下boot.img,通过[TOOL] Boot.img...查看boot.img信息 $ ....就是linux kernel + ramdisk。...解压boot.img $ .
这里记录下linux和windows下两种打包img方式。.../Linux_Pack_Firmware/rockdev/rv1126_rv1109-package-file文件 --- a/tools/linux/Linux_Pack_Firmware/rockdev...misc.img #resource Image/resource.img #kernel Image/kernel.img boot Image/boot.img...Image/misc.img #resource Image/resource.img #kernel Image/kernel.img boot Image/boot.img...backup RESERVED #update-script update-script #recover-script recover-script 接着将SDK下编译生成的boot.img
3.生成Linux内核镜像文件为"out/t113_i/tlt113-evm-emmc/buildroot/boot.img"。...编译生成Linux系统镜像 执行如下命令,打包生成Linux系统镜像文件。Host# ....内核镜像(boot.img)转化为boot.fex文件;将文件系统镜像文件rootfs.ext4转化为rootfs.fex文件;最后将boot0_sdcard.fex、boot0_nand.fex、boot0...请参考Linux系统启动卡制作及系统固化文档,将Linux系统镜像文件固化至Linux系统启动卡或eMMC。.../build.sh kernel编译完成后,生成Linux内核镜像文件为"out/t113_i/tlt113-evm-emmc/buildroot/boot.img"。
将图片转换为raw格式 使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为: convert -depth 8 android_logo.png rgb:android_logo.raw...将raw格式转化为rle文件 需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:...根目录下面的两个文件:init.rc 和 init 功能才能实现设置开机LOGO和开机动画的功能 修改init.rc 和 init 的方法: 1.修改 init.rc 和init文件需要修改手机中的 boot.img...boot.img的组成结构是 +—————–+ | boot header | 1 page +—————–+ | kernel | n pages +—————–+ | ramdisk | m pages.../split_bootimg.pl boot.img 成功执行后,可以得到两个文件,一个是boot.img-kernel,另一个是boot.img-ramdisk.gz。
如下图所示,GRUB 的执行顺序为 boot.img --> core.img --> /boot/grub/。...BIOS 引导方式中,MBR 分区表和 GPT 分区表的 GRUB 引导文件所放分区不同: (1) 在 MBR 分区表中,boot.img 和 core.img 都在 MBR 中。...由于boot.img是写在 MBR 中的,如果不能执行直接跟 GRUB 引导方式说再见了,所以执行boot.img一般没问题。...boot.img不能识别任何文件系统,core.img的位置是硬编码进boot.img的,所以执行boot.img一般没问题。...答: 它们是系统自检成功后同时进行BIOS或者UEFI引导,然后读取磁盘中的第一个分区位置(MBR/GPT分区表存放位置不同,并且受引导方式的影响),以MBR为例其启动代码(boot.img)指向并执行
编译生成Linux系统镜像执行如下命令,打包生成Linux系统镜像文件。Host# ....内核镜像(boot.img)转化为boot.fex文件;将文件系统镜像文件转化为rootfs-ubifs.fex文件和rootfs-sdboot.fex文件。...、rootfs-sdboot.fex等文件,打包生成"out/t113_i_linux_tlt113-evm-nand-sdboot_uart0.img"Linux系统镜像文件。...请参考Linux系统启动卡制作及系统固化文档,将Linux系统镜像文件固化至Micro SD卡、NAND FLASH即可。.../build.sh kernel编译完成后,生成Linux内核镜像文件为"out/t113_i/tlt113-evm-nand/buildroot/boot.img"。
usb_open(list_devices_callback); } usb_open,不同操作系统有不同的实现,为了方便理解,我们分析Linux版本的实现(system/core/fastboot/usb_linux.c...strcmp(item,"boot")) { fn = "boot.img"; } else if(!...return -1; } return check_response(usb, size, response); } usb_write(system/core/fastboot/usb_linux.c...不然的话,就将ramdisk也加载到内存,并使用mkbootimg将二者打包成boot.img格式的数据。 然后将这个打包好的数据,写入的usb中,指定要刷的目标为boot.img。...fastboot boot boot.img 2.
在装LINUX操作系统时,其中有一个步骤就是询问你MBR装在哪里的,但这个MBR并非一定真的是MBR,可能是MBR,也可能是VBR,还可能是EBR,并且想要单磁盘多系统共存,则MBR一定不能被覆盖(此处不考虑...其中boot.img就是安装在MBR中的boot loader。...由于diskboot.img所在的位置是以硬编码的方式写入到boot.img中的,所以boot.img总能找到core.img中diskboot.img的位置并跳转到它身上,随后控制权交给diskboot.img...unrestricted { search --no-floppy --fs-uuid --set=root f5d8939c-4a04-4f47-a1bc-1b8cbabc4d32 linux16...与grub2相比,stage1和boot.img的作用是类似的,都在MBR中。
Linux启动流程总的来说可以分成三个阶段 Linux启动流程图 第一步:上电 Ø在 x86 系统中,将 1M 空间最上面的 0xF0000 到 0xFFFFF 这 64K 映射给 ROM。...第三步:Linux启动 Linux启动-引导 Ø我们可以通过BIOS界面选择硬盘启动项进入OS,那BIOS是怎么发现这个硬盘里有OS?...boot.img,BIOS 完成任务后,会将 boot.img 从硬盘加载到内存中的 0x7c00 来运行。...boot.img会加载 core.img。...Linux启动-用户切换 Linux预设提供了六个命令窗口终端机让我们来登录。
mod, lst 文件(默认路径是/usr/lib/grub/i386-pc/,可以通过对应的rpm -ql PACKAGENAME来查看), 在执行grub2-install之后,img文件分布如下: boot.img...文件被写入到MBR中,因为MBR的大小是512字节,所以boot.img总是512字节大小; 但是写入到MBR的内容和boot.img的内容并不完全相同, MBR的内容是boot.img经过转换后的内容...boot.mod #支持grub下的boot 命令,执行该命令会提示要设置kernel, 必须首先设置 linux 的参数值,然后是initrd 的参数值,如何记住linux 和initrd 这两个命令呢
提取出来 (如果系统包里面没有boot.img,只有payload.bin,请参考这个教程提取:A/B分区系统提取boot文件(payload.bin解包boot.img) - kenvie) 6、打开...Magisk APP【安装 – 选择并修补一个文件 – 弹窗文件管理窗口(找到刚刚提取的boot.img)- 开始】 7、修补结束,会生成一个名字为(magisk_patched-版本号_随机字符.img...)的文件 (每次生成的随机字符都不一样,使用的时候请输入生成的名字) 8、手机连接到电脑,把boot.img和(magisk_patched-23000_xxxxx.img)两个文件复制到电脑 9、下载...温馨提示 如果刷模块不兼容或者其他骚操作导致卡米的话,可以把我们前面提取的boot.img通过fastboot刷回去,恢复原系统,一般都能正常开机!...boot.img保留一份在电脑,避免出问题了可以自救下!后期系统更新,直接下载全量完整包升级,然后重复上面的步骤就可以继续愉快的使用Magisk了!
开发环境:Windows 7 64bit、Windows 10 64bit开发环境:VMware16.2.5、Ubuntu20.04.6 64bitU-Boot:U-Boot-2017.09Kernel:Linux...请按照如下方法替换为支持四路视频显示输出的内核镜像boot.img文件。...请将产品资料“4-软件资料\Demo\qt-demos\led_control_multi_screen\bin\”目录下boot.img文件拷贝至评估板文件系统任意目录下。...Target# dd if=boot.img of=/dev/mmcblk1p3Target# syncTarget# reboot四屏异显方案演示基于官方系统的四屏异显演示请参考《评估板测试手册》文档硬件连接说明..._64-linux/bin/qmakeHost# make关键代码获取屏幕编号,根据屏幕编号获取屏幕信息从而显示至目标显示屏。