轻松六步教会你如何修改system.img.ext4文件
http://bbs.xiaomi.cn/thread-2943923-1-1.html
希望更多的ROM作者,看了此教程后,学会ROM制作,给大家带来更多更好的ROM
首先下载如下包
Linux Ubuntu 11.10
地址:http://releases.ubuntu.com/11.10/
直接下载:PC (Intel x86) desktop CD
做不起連接???
下載地址:http://releases.ubuntu.com/11.10/ubuntu-11.10-desktop-i386.iso
当然也可以下载现在大家都在用的Ubuntu 10.04
此工具由机锋网xiao1u 编译
第一步:获取终端执行命令的最高权限
打开终端,先输入 su ,然后输入你的密码(此时输入字符看不见,可不要以为什么都没有输入哦),敲回车,如果成功,就会发现最后的字符由$变成了#,证明你已经获取了最高root权限
![]()
第二步:做好准备工作
然后将里面内容解压,得到三个文件:make_ext4fs,mkuserimg.sh,simg2img
为了方便小白制作者,将这三个文件放到《文档》目录下。
然后,启动终端,进入《文档》,如果你是英文版,请把《文档》换成《Document》注意linux下区分大小写

cd 文档
复制代码
第三步:转换源文件为ext4格式
然后,我们可以使用./simg2img src des命令来转换system.img.ext4格式文件了
终端输入:
- ./simg2img system.img.ext4 system.img
复制代码
(输入./simg2img的意思是,执行当前目录下的这个文件)

![]()
等待一会,就可以转换完毕了。
第四步:挂载镜像到指定目录
然后挂载此img到一个目录上,新建一个目录,使用 sudo mkdir sysmain 新建出一个名为sysmain的目录

然后执行命令
- mount -o loop system.img sysmain
复制代码

成功挂载。然后你就可以进入目录了查看里面的文件了!!!!!
第五步:修改镜像内的文件
这时候可以进入挂载的目录mysys里面查看各个文件,甚至是修改了。不过这时候要注意一点,就是保持文件的原始权限,如果一不小心修改错了,那么你可以将文件权限设置最大的777,然后再修改用户为root既可
小提示:app目录内的文件权限都是644,framework目录也是644,其他目录一般也都是644的,文件夹权限一般都是755
![]()
如,我们要将su文件放入xbin目录下
使用命令
- sudo cp su sysmain/xbin
- sudo chown root.2000 sysmain/xbin/su
- sudo chmod 06755 sysmain/xbin/su
复制代码
执行上面三个命令后,既可修改好权限。其他文件依次类推。
(如果你不知道权限该如何设置,可以使用命令 ls -l sysmain/app 查看文件具体权限,根据其他文件的权限来修改你的文件权限即可)
(当你替换已经存在的文件,无需修改权限,如果放入一个没有存在过的文件,切记修改相应的用户组,使用命令 chown root.root 来修改它的用户和用户组)
如果执行命令权限不足,可以在每个命令前加上sudo命令,这样可以以最高权限执行每个命令了
这个就是将app目录设置为权限高,然后你将文件放入。放入后记得一定要再将你放入的文件权限改好。同时恢复app原始权限
一般建议大家使用命令来移动、复制文件,这样不存在权限问题
第六步:打包文件
当你所有文件搞定后,下来需要一个命令来打包了。
- sudo ./mkuserimg.sh -s sysmain systest.img.ext4 ext4 tmp 512M
复制代码


这里需要注意,temp是我在当前目录新建立的一个目录,后面的512M是这个镜像打包后占用空间大小。如果你不知道你的镜像包应该多大,你查看你景象挂载到目录后,这个景象分区的大小。
恩,当你完成以上步骤,新的systest.img.ext4成功生成了,好了,你可以在fastboot模式下刷入了!!!
轻松六步教会你如何修改system.img.ext4文件的更多相关文章
- 更改Android设备System目录的文件的写入权限
有时候我们需要修改/system目录中文件的权限,比如将该目录下的脚本设置写入权限等,但该目录默认只有read权限,此时应该怎么办? 1.安卓设备请确保root;2.连接安卓设备,确保安卓设备打开了“ ...
- 六步实现Spring.NET 与 NHibernate 的整合
最近刚完成一个项目,其中对数据库的架构用到的是Spring.NET 与 NHibernate相结合的产物.对于这两项技术,我自己也不是太熟悉,不过好在网上有很多关于这方面的介绍文档,在这里就不多说了. ...
- APICloud:轻松6步完成App软件开发
现如今,谁不知道App绝对就是OUT,谁不用App简直没法过日子!但是说到App软件开发,不懂编程,不懂技术的人就一脸懵圈.在门外汉来看,App软件开发是一件非常困难的事情,然而APICloud却说, ...
- c# ado 连接数据库 六步曲
建立连接分为六步:1.定义连接字符串,oracle 的连接字符串为: private static string connString = "Data Source=192.168.1.13 ...
- 轻松八步搞定Cacti配置安装(原创视频)
轻松八步搞定Cacti配置安装 1.安装web server $sudo apt-get install apache2 验证 http://localhost 2.$sudo apt-get ins ...
- KingbaseES R3 集群修改system用户密码方案
方案说明: 对于kingbaseES R3集群修改system密码相比单机环境有一定的复杂性,需要修改的位置如下: 1)数据库中system用户密码,可以用alter user命令修改 2)在reco ...
- 轻松三步教你配置Oracle—windows环境
最近笔者在学习Oracle的时候,虽然度过了大家所说的安装难题,但是又遇到了一系列的问题,经过多方求教才知道原来是自己仅仅是安装了Oracle,却没有在环境变量中进行相应的配置.笔者也像大家遇到问题时 ...
- Ubuntu下修改system.img 解包system.img、打包system.img
一.准备工作:解压解打包工具,得到三个文件:make_ext4fs.mkuserimg.sh.simg2img,把它们跟要修改的 .img.ext4(或.img)文件放置到同一个目录下 二.转换源文件 ...
- 第六步:Lucene查询索引(优化一)
package cn.harmel.lucene; import java.io.IOException; import java.nio.file.Paths; import org.apache. ...
随机推荐
- swift 属性和方法
属性和常量 如果创建了一个结构体的实例并赋值给一个常量,则无法修改实例的任何属性: let rangeOfFourItems = FixedLengthRange(firstValue: 0, len ...
- [转]ISTQB FL初级认证考试资料(中文)
[转]ISTQB FL初级认证考试资料(中文) 2015-06-22 ISTQB作为一个专业的提供软件测试认证的机构,得到了全球软件测试人员的认可.目前中国有越来越多的人已经获得或者希望获得ISTQB ...
- Windows BAT
一个BAT拷贝程序: :: For example: SRC_PATH = C:\hello\world :: and DEST_PATH = E:\another :: this program w ...
- android布局自适应小示例(用户反馈界面)
要求: 1.整个界面刚好填满屏幕,不需要滚动 2.输入反馈内容的EditText控件高度能够自适应 3.提交按钮位于屏幕最下方 核心布局文件如下: <?xml version="1.0 ...
- dp背包之01背包poj2184
http://poj.org/problem?id=2184 题意:给定两个属性,求这两个属性的和的最大值......... 思路:将第一个属性往后平移1000个单位,然后推导其动态转移方程,若是dp ...
- xcode6 dyld_sim is not owned by root
如果运行复制过来的xcode可能会这个提示,xcode6 dyld_sim is not owned by root解决方法打开终端 输入sudo xcode-select -switch /Appl ...
- 关于Netfilter NF_HOOK宏的outdev參数bug
1.首先指出.NF_HOOK系列宏的outdev參数的传递方式(直接传递一个net_device结构体指针)是不对的 正确的方式要么是不传递.要么是传递指针的地址,即地址的地址. 2.接下来指出,仅仅 ...
- [网络]Linux一些网络知识
今天刚搬到新家,ubuntu一启动,无线网络又连不上了,之前就是大费周折才搞好的,于是又花了两小时才搞好. 下面就先来了解一些基础知识: 1. ifconfig输出的eth0/lo/wlan0分别代表 ...
- C++中类所占的存储空间
#include <iostream> using namespace std; class A { int m_a; int get() { return m_a; } virtual ...
- ResourceBundle读取utf-8格式properties 中文乱码
解决方法: ResourceBundle prop = ResourceBundle.getBundle("app");String defaultTunnelName = new ...