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文件的更多相关文章

  1. 更改Android设备System目录的文件的写入权限

    有时候我们需要修改/system目录中文件的权限,比如将该目录下的脚本设置写入权限等,但该目录默认只有read权限,此时应该怎么办? 1.安卓设备请确保root;2.连接安卓设备,确保安卓设备打开了“ ...

  2. 六步实现Spring.NET 与 NHibernate 的整合

    最近刚完成一个项目,其中对数据库的架构用到的是Spring.NET 与 NHibernate相结合的产物.对于这两项技术,我自己也不是太熟悉,不过好在网上有很多关于这方面的介绍文档,在这里就不多说了. ...

  3. APICloud:轻松6步完成App软件开发

    现如今,谁不知道App绝对就是OUT,谁不用App简直没法过日子!但是说到App软件开发,不懂编程,不懂技术的人就一脸懵圈.在门外汉来看,App软件开发是一件非常困难的事情,然而APICloud却说, ...

  4. c# ado 连接数据库 六步曲

    建立连接分为六步:1.定义连接字符串,oracle 的连接字符串为: private static string connString = "Data Source=192.168.1.13 ...

  5. 轻松八步搞定Cacti配置安装(原创视频)

    轻松八步搞定Cacti配置安装 1.安装web server $sudo apt-get install apache2 验证 http://localhost 2.$sudo apt-get ins ...

  6. KingbaseES R3 集群修改system用户密码方案

    方案说明: 对于kingbaseES R3集群修改system密码相比单机环境有一定的复杂性,需要修改的位置如下: 1)数据库中system用户密码,可以用alter user命令修改 2)在reco ...

  7. 轻松三步教你配置Oracle—windows环境

    最近笔者在学习Oracle的时候,虽然度过了大家所说的安装难题,但是又遇到了一系列的问题,经过多方求教才知道原来是自己仅仅是安装了Oracle,却没有在环境变量中进行相应的配置.笔者也像大家遇到问题时 ...

  8. Ubuntu下修改system.img 解包system.img、打包system.img

    一.准备工作:解压解打包工具,得到三个文件:make_ext4fs.mkuserimg.sh.simg2img,把它们跟要修改的 .img.ext4(或.img)文件放置到同一个目录下 二.转换源文件 ...

  9. 第六步:Lucene查询索引(优化一)

    package cn.harmel.lucene; import java.io.IOException; import java.nio.file.Paths; import org.apache. ...

随机推荐

  1. redis基础之订阅发布、主从复制和事务(四)

    前面已经学习了redis的基本的命令行操作和数据类型,下面开始redis一些有趣的功能. 订阅和发布机制 定义:发布者相当于电台,订阅者相当于客户端,客户端发到频道的消息,将会被推送到所有订阅此频道的 ...

  2. cocos2d-x发生undefined reference to `XX'异常 一劳永逸解决办法

    cocos2d-x发生undefined reference to `XX'错误 一劳永逸解决方法 参考文章: http://blog.csdn.net/kafeidev/article/detail ...

  3. redis使用场景介绍

    一:缓存——热数据 热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存,毕竟强大到冒泡的QPS和极强的稳定性不是所有类似工具都有的,而且相比于memcached还提供了 ...

  4. 基于jQuery仿Flash横向切换焦点图

    给各网友分享一款基于jQuery仿Flash横向切换焦点图.利用Flash可以制作很多漂亮的图片相册应用,今天我们要用jQuery来实现这样的效果.它是一款仿Flash的横向图片切换焦点图插件,可以自 ...

  5. CSS布局奇淫技巧之--各种居中<转>

    居中是我们使用css来布局时常遇到的情况.使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍. 注:本文所讲方法除了特别说明 ...

  6. Redis学习笔记——数据类型及操作

    数据操作 redis是key-value的数据,所以每个数据都是一个键值对 键的类型是字符串 值的类型分为五种: 字符串string 哈希hash 列表list 集合set 有序集合zset 数据操作 ...

  7. CSS(四):字体和文本属性

    一.字体属性 属性 描述 font-style 设置字体风格 font-weight 设置字体粗细 font-size 设置字体的尺寸(一般用px表示) font-family 设置字体系列 font ...

  8. C++ 类的抽象初练

    /* 某商店经销一种货物,货物的购进和卖出以箱为单位,各箱的重量不一样, 因此商店需要目前库存的总重量. 现在用c++模拟商店货物购进和卖出的情况 */ #include<iostream> ...

  9. 第二百六十五节,xss脚本攻击介绍

    xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常 ...

  10. 关系运算符:instanceof

    关系运算符:instanceof a instanceof Animal;(这个式子的结果是一个布尔表达式) a为对象变量,Animal是类名. 上面语句是判定a是否可以贴Animal标签.如果可以贴 ...