image burn

问题

SDK在打包sd镜像的时候用了挂载loop设备然后分区的操作,会涉及到提权问题,提权之后会产生隐式安全的问题。

由于涉及到提权问题,用户在build时在打包镜像过程中有可能权限不够,milkv 外设验证中就出现了该问题。

SD镜像

SD镜像是指通过将嵌入式系统或其他操作系统完整地复制到SD卡或类似存储介质中创建的一个映像文件。它包含了完整的文件系统、操作系统和其他相关的数据。

SD镜像通常用于将整个嵌入式系统部署到SD卡或类似存储介质上,以便将其用作嵌入式设备的启动介质。镜像文件包含了预先配置好的文件系统、内核、驱动程序和其他所需的组件,可以直接烧录到SD卡中,然后插入到嵌入式设备中进行启动和运行。

创建SD镜像的过程涉及将整个文件系统的内容复制到一个文件中,并确保文件系统的结构、权限和属性等信息得以保留。这样,当镜像文件被写入SD卡时,SD卡中的分区和文件系统结构与原始系统完全相同。

SD镜像的好处是可以方便地复制和部署嵌入式系统,以及在多个设备之间进行系统的快速复制和恢复。它在嵌入式开发、系统定制和部署中扮演着重要的角色。

loop

在Linux中,loop是一种设备驱动程序,用于将一个文件作为块设备进行访问。它允许将一个普通文件映射为一个块设备,从而可以在该文件上模拟一个独立的块设备。

通过使用loop设备,可以将镜像文件、虚拟磁盘映像或其他特定格式的文件系统

载为一个独立的文件系统。这样,可以对该文件系统进行读取、写入和访问,就像访问实际的硬盘或分区一样。

loop设备的工作原理是将一个文件映射到一个块设备节点,然后可以使用mount命令将该设备挂载到指定的挂载点上。在挂载完成后,可以通过文件系统路径访问和操作该文件中的数据。

使用losetup命令可以将一个文件与loop设备进行关联,并为其分配一个可用的loop设备节点。例如,可以使用以下命令将名为image.img的镜像文件与一个loop设备进行关联:

sudo losetup /dev/loop0 image.img

然后,可以使用mount命令将/dev/loop0设备挂载到指定的挂载点上,使其可访问和使用。

sudo mount /dev/loop0 /mnt

这样,image.img文件中的文件系统将以/mnt作为根目录挂载到系统中,可以进行文件操作和访问。

需要注意的是,在使用完毕后,应该使用umount命令将挂载点卸载,并使用losetup -d命令断开loop设备与文件的关联,释放相应的设备节点。

sd_gen_burn_image.sh代码阅读

#!/bin/bash
# a sd image generator for sophpi
# usage
if [ "$#" -ne "1" ]  #如果输入的参数数量不等于1就打印以下语句
 then
    echo "usage: sudo ./sd_gen_burn_image.sh OUTPUT_DIR"
    echo ""
    echo "       The script is used to create a sdcard image with two partitions, "
    echo "       one is fat32 with 128MB, the other is ext4 with 256MB."
    echo "       You can modify the capacities in this script as you wish!"
    echo ""
    echo "Note:  Please backup
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值