Linux下对system.img文件操作

合集下载

转载ramdisk.imgsystem.imguserdata.img介绍与解包、打包方法

转载ramdisk.imgsystem.imguserdata.img介绍与解包、打包方法

ramdisk.img system.img userdata.img介绍及解包、打包方法2011-11-25 11:37:24分类:ramdisk.img system.img userdata.img介绍及解包、打包方法Android 源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。

ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载这3个映像文件后,会把system和userdata分别加载到ramdisk文件系统中的system和data目录下。

三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础,下面将做详细介绍。

Ramdisk镜像是采用cpio打包,gzip压缩的。

用file验证:# file ramdisk.img输出: # ramdisk.img: gzip compressed data, from Unix为了便于说明问题,我们将ramdisk.img拷贝到其它一个目录,然后按以下步骤将ramdisk.img还原为目录树:# mv ramdisk.img ramdisk.img.gz# gunzip ramdisk.img.gz# mkdir ramdisk#cd ramdisk#mkdir temp#cd temp# cpio –i –F ../ramdisk.img这样,就得到一个完整的ramdisk目录,与out/target/product/generic/root对比后,我们发现它们是一样的内容。

通过执行以下的操作,我们可由目录树再生成ramdisk镜像# cd temp# find . | cpio -o -H newc | gzip > ../ramdisk-new.img 这两个镜像都属于yaffs2文件格式,生成方式是一样的。

linux c语言 system的用法

linux c语言 system的用法

linux c语言system的用法
system函数是C语言中的一个标准库函数,用于在程序中调用操作系统的命令。

其函数原型为:cint system(const char *command);system函数通过传入一个字符串类型的命令,将该命令传送给shell执行。

在执行完命令后,system 函数会返回命令的返回值。

使用system函数时需要注意以下几点:1. 在Linux 中,system函数通过调用/bin/sh来执行命令,因此可以使用shell的特性,比如使用{ }、&&、和;等操作符来组合多个命令。

2. system函数在调用命令时会将当前进程的环境变量传递给新创建的子进程,因此在执行命令时可以使用当前程序定义的环境变量。

3. system函数在执行命令时,会阻塞当前进程直到命令执行完成。

如果执行命令失败,系统函数会返回-1;如果成功,会返回命令的返回值。

以下是system函数的示例代码:c#include <stdio.h>#include
<stdlib.h>int main() { int ret; ret = system("ls -l"); printf("命令返回值:%d\n", ret); return 0;}上述代码中,程序调用了system函数执行了一个"ls -l"的命令,并通过printf函数打印命令的返回值。

需要注意的是,在使用system函数执行命令时,要确保参数command不会包含用户输入的不受信任的内容,否则可能会造成系统安全问题。

转载ramdisk.img system.img userdata.img介绍及解包、打包方法

转载ramdisk.img system.img userdata.img介绍及解包、打包方法

ramdisk.img system.img userdata.img介绍及解包、打包方法2011-11-25 11:37:24分类:ramdisk.img system.img userdata.img介绍及解包、打包方法Android 源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。

ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载这3个映像文件后,会把system和userdata分别加载到ramdisk文件系统中的system和data目录下。

三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础,下面将做详细介绍。

Ramdisk镜像是采用cpio打包,gzip压缩的。

用file验证:# file ramdisk.img输出: # ramdisk.img: gzip compressed data, from Unix为了便于说明问题,我们将ramdisk.img拷贝到其它一个目录,然后按以下步骤将ramdisk.img还原为目录树:# mv ramdisk.img ramdisk.img.gz# gunzip ramdisk.img.gz# mkdir ramdisk#cd ramdisk#mkdir temp#cd temp# cpio –i –F ../ramdisk.img这样,就得到一个完整的ramdisk目录,与out/target/product/generic/root对比后,我们发现它们是一样的内容。

通过执行以下的操作,我们可由目录树再生成ramdisk镜像# cd temp# find . | cpio -o -H newc | gzip > ../ramdisk-new.img 这两个镜像都属于yaffs2文件格式,生成方式是一样的。

system命令用法

system命令用法

system命令用法system命令用法system命令是一个常用的命令行工具,用于在Unix和类Unix系统中执行shell命令。

它允许用户在命令行界面中运行其他程序,并获取其输出结果。

本文将列举一些system命令的常见用法,并进行详细讲解。

1. 运行简单命令使用system命令最简单的用法是运行简单的命令。

只需要在命令行中输入system,后面紧接着要执行的命令即可。

例如,要在命令行中运行ls命令来列出当前目录的文件和文件夹,可以输入以下命令:system("ls")2. 运行带参数的命令在实际使用中,有时需要运行带参数的命令。

system命令也支持这种用法。

只需要将参数直接附加在命令后面即可。

例如,要在命令行中运行grep命令来搜索特定的字符串,可以输入以下命令:system("grep 'search_string' ")3. 获取命令输出除了运行命令,system命令还可以获取命令的输出结果。

可以将命令的输出保存到一个变量中,以便后续使用。

以下是一个获取命令输出的示例:import osoutput = ("ls").read()print(output)上述代码会将ls命令的输出保存到变量output中,并打印输出结果。

4. 检查命令是否执行成功有时候,我们需要检查命令是否执行成功。

可以通过system命令的返回值来判断。

如果返回值为0,则表示命令成功执行;如果返回值为非0,则表示命令执行失败。

以下是一个判断命令执行结果的示例:import osstatus = ("ls")if status == 0:print("Command executed successfully")else:print("Command execution failed")上述代码会运行ls命令,并根据返回值判断命令执行结果。

Linux命令高级技巧使用dd命令进行磁盘镜像和备份

Linux命令高级技巧使用dd命令进行磁盘镜像和备份

Linux命令高级技巧使用dd命令进行磁盘镜像和备份Linux系统作为一种开源操作系统,具有强大的灵活性和可定制性,而dd命令则是其中一个非常强大且常用的命令。

dd命令可以进行磁盘镜像和备份,其灵活性使得它成为Linux系统管理员和维护人员的必备技能之一。

在本文中,我将为您介绍如何使用dd命令进行磁盘镜像和备份的高级技巧。

一、磁盘镜像磁盘镜像是将一个磁盘的完整内容复制到另一个磁盘或者文件中的过程。

它可以用于备份系统和数据,以及快速部署相同配置的多台机器。

使用dd命令进行磁盘镜像的基本语法为:dd if=输入文件 of=输出文件其中,if表示输入文件,可以是磁盘设备(如/dev/sda)或者文件(如/home/user/image.img),of表示输出文件,也可以是磁盘设备或者文件。

1. 镜像整个磁盘或分区要镜像整个磁盘或分区,您需要使用正确的输入文件和输出文件。

首先,您需要确定输入文件的路径,您可以使用lsblk命令查看系统中的磁盘和分区信息。

然后,使用以下命令进行镜像:dd if=/dev/sda of=/path/to/image.img此命令将/dev/sda设备的内容复制到/path/to/image.img文件中。

请确保输出文件的路径和文件名正确,并且有足够的存储空间。

2. 镜像单个文件系统有时候,您只需要镜像一个文件系统而不是整个磁盘。

为了做到这一点,您需要找到文件系统所在的分区,并使用相应的设备路径进行镜像。

例如,如果您想要镜像/dev/sda1分区,可以使用以下命令:dd if=/dev/sda1 of=/path/to/filesystem.img这将复制/dev/sda1分区的内容到/path/to/filesystem.img文件中。

确保输出文件的路径和文件名正确,并且有足够的存储空间。

3. 镜像文件系统的指定范围有时候,您可能只想镜像文件系统的某个指定范围,而不是整个文件系统。

android 修改 system.img 方法

android 修改 system.img 方法
继续运行
mkyaffs2image -f out/target/product/generic/system out/target/product/generic/system.img
最后运行emulator
整体过程如下图:
4.
十分有力的证据说明本方法是切实有效的。
.
5.
建立代码和运行环境的同步对应,使单步跟踪(网上搜索如何debug framework等关键字相信会有所启发)具有实际意义。
添加环境变量$ANDROID_PRODUCT_OUT=/out/target/product/generic方便载入emulator需要的三个make生成的IMG
步骤:
在源码根目录下运行. build/envsetup.sh或sourcebuild/envsetup.sh
运行mmm packages/apps/Launcher2/
andr完成
2.
修改launcher比较容易验证。在此,修改launcher桌面图标下面文本背景色(非常简单)。找到如下图中的路径和文件,并打开。
在代码中添加下图所示代码:
3.
此步需要两个前提,四个步骤。
前提:
添加/out/host/linux-x86/bin到系统路径($PATH)--方便使用mkyaffs2image和emulator

固件包img文件解压和打包教程——让自己也能做个简单的ROM!

固件包img文件解压和打包教程——让自己也能做个简单的ROM!

废话不多说直接上教程:VirtualBox下载地址:/html_2/1/59/id=46462&pn=0.html YLMS OS下载地址:/1、在VirtualBox虚拟YLMS OS下安装增强功能及共享WINDOWS文件夹的方法linlong@linlong-laptop:~$ sudo passwd root输入新的UNIX 密码:重新输入新的UNIX 密码:passwd:已成功更新密码linlong@linlong-laptop:~$ su密码:root@linlong-laptop:/home/linlong# mkdir /mnt/cdromroot@linlong-laptop:/home/linlong# sudo mount /dev/cdrom /mnt/cdrommount: 块设备/dev/sr0 写保护,已只读方式挂载root@linlong-laptop:/home/linlong# cd /mnt/cdromroot@linlong-laptop:/mnt/cdrom# ls32Bit VBoxLinuxAdditions-amd64.run VBoxWindowsAdditions.exe64Bit VBoxLinuxAdditions-x86.run VBoxWindowsAdditions-x86.exeAUTORUN.INF VBoxSolarisAdditions.pkgautorun.sh VBoxWindowsAdditions-amd64.exeroot@linlong-laptop:/mnt/cdrom# sudo sh ./VBoxLinuxAdditions-x86.run Verifying archive integrity... All good.Uncompressing VirtualBox 3.2.4 Guest Additions for Linux.........VirtualBox Guest Additions installertar: 记录大小= 8 块Building the VirtualBox Guest Additions kernel modulesBuilding the main Guest Additions module ...done.Building the shared folder support module ...done.Building the OpenGL support module ...doneDoing non-kernel setup of the Guest Additions ...done.Starting the VirtualBox Guest Additions ...done.Installing the Window System driversInstalling Server 1.7 modules ...done.Setting up the Window System to use the Guest Additions ...done.You may need to restart the hal service and the Window System (or just restartthe guest system) to enable the Guest Additions.Installing graphics libraries and desktop services components ...done.root@linlong-laptop:/mnt/cdrom#2、实现共享菜单栏上点击设备然后再弹出的列表中点击分配数据空间出现如下图(不知道的自己百度下)sudo mkdir /home/share (share是要共享的文件夹名字)sudo mount -t vboxsf share /home/(注意空格)3、解包(需要用到的包要放到共享文件目录下)(一)在开始解包之前要做这么几件事:①下载unyaffs包下载地址:/p/unyaffs/downloads/list②执行先执行gcc –o unyaffs unyaffs.c 再执行cp unyaffs /bin(具体看你bin目录在哪个路径下)(二)接下来就开始解压img文件:请不要直接用命令unyaffs system.img,这样的话解开的文件都在当前目录下。

简述linux系统中主要的文件操作命令及用法 -回复

简述linux系统中主要的文件操作命令及用法 -回复

简述linux系统中主要的文件操作命令及用法-回复Linux系统是一种非常强大和广泛使用的操作系统,它提供了许多文件操作命令,使用户可以轻松管理和操作文件。

本文将简述Linux系统中主要的文件操作命令及其用法,详细介绍每个命令的功能和使用方法。

在Linux系统中,文件操作命令可以通过终端来执行,用户只需输入命令并按下回车键即可执行相应的操作。

下面将逐个介绍各个文件操作命令及其用法:1. ls命令:ls命令用于列出目录中的文件和子目录。

使用ls命令可以查看当前目录下的所有文件和子目录。

例如,输入"ls"命令将显示当前目录下的所有文件和子目录的名称。

2. cd命令:cd命令用于更改当前工作目录。

通过cd命令,用户可以进入某个目录或返回上一级目录。

例如,输入"cd /home"命令将进入"/home"目录,输入"cd .."命令将返回上一级目录。

3. mkdir命令:mkdir命令用于创建目录。

使用mkdir命令可以在当前目录下创建一个新的目录。

例如,输入"mkdir new_directory"命令将在当前目录下创建一个名为"new_directory"的目录。

4. rm命令:rm命令用于删除文件和目录。

使用rm命令可以删除指定的文件或目录。

例如,输入"rm file.txt"命令将删除名为"file.txt"的文件,输入"rm -r directory"命令将删除名为"directory"的目录及其所有内容。

5. cp命令:cp命令用于复制文件和目录。

使用cp命令可以将指定的文件或目录复制到另一个位置。

例如,输入"cp file.txt new_directory"命令将将名为"file.txt"的文件复制到名为"new_directory"的目录中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

接下来要注意:要分清通常的Linux和ylmfos的区别
先输入指令
sudo su(通常的Linux和ylmfos都要输)
然后出现Password:,输入你的用户密码,直接输入,但是看不见,但其实你已经输入了,输入完后回车下面的指令里要注意一个问题
在通常的Linux中和ylmfos的区别
通常的Linux解包是
sudo mount -o rw,loop system.img test(结构是:sudo mount -o rw,loop XXX.img 解包到的文件夹名)
打包是
sudo umount test(结构是:sudo umount 需要打包的文件夹名)
ylmfos解包是
mount -o rw,loop system.img test(结构和上面类似)
打包是
umount test(结构和上面类似)
要注意空格和区别
解包后不要删除原system.img,原因请继续往下看!
解包后是无法修改的,要用管理员身份运行,右击文件夹就会有了。

然后根据你的需要修改(只能精简,不能添加,只是个缺点,可以在windows用工厂工具解包修改打包后再到Linux作ROOT)
接下来就是Root了(修改权限方法相同)
打开app(bin),再打开终端,现在终端已经定位到app(bin)了,然后直接输入chmod 6755 superuser.apk(su)
最后按照上面打包完成,但是你找不到你新打包的system.img,其实当你打包后,系统直接把打包后的文件替换到原system.img内,所以直接复制到储存设备就行
最后转移到windows,替换原来的system.img
最后再修改扩容等就行了。

二、.安装VMware-tools
1.点击VMware工具栏''VM”——“install VMware tools...",这时桌面会出现光盘形状的VMware Tools,而且会自动跳出目录,里面包含两个文件,"manifest.txt"与"VMwareTools-8.4.5-324285.tar.gz"。

2.打开终端,点击"应用程序"——"附件"——"终端",进入超级用户操作,linux 初始安装时时没有为root用户创建密码,假设我的系统还没为root用户创建密码,在终端中输入:
sudo passwd root
系统会提示你输入当前用户密码,输入root密码,然后切换到root用户:
su root
输入刚才创建的root密码,这样就切换到了超级用户了。

继续在终端输入
cd /media/VMware Tools 进入安装文件目录
cp VMwareTools-8.4.5-324285.tar.gz /tmp 将VMware Tools压缩包拷贝到临时文件夹/tmp下
cd /tmp
进入临时文件夹
ls
显示该该文件夹的文件,其中就有VMwareTools-8.4.5-324285.tar.gz
tar zxvf VMwareTools-8.4.5-324285.tar.gz 解压该压缩文件
ls
会发现文件vmware-tools-distrib
cd vmware-tools-distrib 进入该文件夹
ls
里面有vmware-install.pl
./vmware-install.pl 安装vmware-tools
一路Enter,VMware-tools就安装成功了。

三、.点击VM——setting——options——shared Folders,选择Always enabled,点击下面Add添加windows中的共享文件夹,我选择的是F盘,然后保存修改。

四、重新启动ubuntu,你就可以在目录/mnt/hgfsz下发现名为"F"的文件夹了,双击就会发现时windows下的F盘的内容,你可以在ununtu下在里面进行读写操作了。

网上搜索了一下,很多文章都是介绍在Linux环境下用unyaffs和mkyaffs2image来实现解包和打包的,但是YLMF OS直接就可以操作。

首先需要为你的雨林木风(YLMFOS)和起点OS安装VMware Tools,这样能很方便的在物理机和虚拟机之间复制拷贝文件。

首先在虚拟机YLMF OS桌面上新建一个文件夹,名字可以随便取。

然后将Windows物理机里面的system.img复制
进入刚刚虚拟机桌面建立的文件夹里面,点击粘贴。

因为system.img文件有点大,复制会花掉一点点时间。

再到system.img的文件夹相同目录新建一个文件夹,也叫system
这样是为了方便一会将system.img解包到system文件夹中,记住一定要新建文件夹,不然一会解包的时候会出现错误。

打开终端
输入命令mount -o rw,loop system.img system最后这个system就是刚刚新建的文件夹名称,如果你新建的是别的名称,这里需要更改一下。

解包完成,我们进入system文件夹看看,里面多了很多文件夹和文件,包括ROM固件包常见的app、bin、tec、fonts、framework、lib和media文件夹。

这时我们先不做任何修改和定制,直接将system.img打包回去,还是在刚才的终端命令窗口,输入解包命令:umount system
意思就是说将system文件夹打包成system.img
再进入system文件夹看看,里面的文件全都不见了,这就表示system.img打包成功了,这时就可以拷贝出来,然后利用厨房打包签名ROM固件包后刷入手机了。

相关文档
最新文档