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. CShopDialog类

    #ifndef SHOP_H #define SHOP_H #include "XWidget.h" #include "GameConfig.h" class ...

  2. CSplashScene类

    #ifndef __TRANSITIONSCENE_H__ #define __TRANSITIONSCENE_H__ #include "GameFrameHead.h" cla ...

  3. RIP动态路由的配置

    RIP其实相对比会比静态路由会简单的多,只需要使用rip命令添加邻居的网络号即可. 命令: Router(config)#ip route rip Router(config-router)#netw ...

  4. netctl

    netctl is a CLI-based tool used to configure and manage network connections via profiles. It is a na ...

  5. Scala中Stream的应用场景及其实现原理

    欢迎关注我的新博客地址:http://cuipengfei.me/blog/2014/10/23/scala-stream-application-scenario-and-how-its-imple ...

  6. PHP 汉字转成拼音

    <?php class ZH{ /** * 将字符串转化为拼音 */ function Pinyin($_String, $_Code='gb2312') { $_DataKey =" ...

  7. 多个 label checkbox 组合 显示在同一个水平线上[前提Bootstrap框架]

    <th align="left" valign="middle"> <label class="checkbox inline fo ...

  8. EF报LINQ to Entities 不识别方法“Web_JZRepository.Models.copy_materials_details get_Item(Int32) ”,因此该方法无法转换为存储表达式。

    说明用了如 List<T> list=new List<T>(); je.copy_materials_details.SingleOrDefault(x => x.ID ...

  9. ThinkPHP项目笔记之MVC篇

    题记:网上关于ThinkPHP的介绍,不计其数,有文档,示例,代码片段以及其他等.毕竟自己掌握的,才是自己的. 所以,趁着做的项目(当然用的是thinkphp框架)的余热,奋笔疾书,一个人的理解与拙笔 ...

  10. linux通过shell脚本修改文件内容

    sed -i 's/abc/xxx/g' file abc修改前的字符串xxx是修改后的字符串file是要被修改的文件