轻松六步教会你如何修改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. ...
随机推荐
- error while loading shared libraries *.so.*
转自 http://my.oschina.net/u/561492/blog/192341 ubuntu12.04-64位编译Android4.2时出现问题:error while loading s ...
- webapi应用架构详解
webapi适用场景 常见的应用包括以下四类,PC客户端程序,APP程序,网站程序,H5程序.这些应用需要的数据,服务可由同一个接口服务程序提供,这样,大大提高了产品多平台设计开发的效率,避免了重复的 ...
- Unicode Table
Unicode Table http://www.tamasoft.co.jp/en/general-info/unicode.html 00 01 02 03 04 05 06 07 08 09 ...
- jQuery插件开发全解析<转>
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- 使用Navicat连接阿里云服务器上的MySQL数据库=======Linux 开放 /etc/hosts.allow
使用Navicat连接阿里云服务器上的MySQL数据库 1.首先打开Navicat,文件>新建连接> 2,两张连接方法 1>常规中输入数据库的主机名,端口,用户名,密码 这种直接 ...
- Jquery动态添加 删除 操作实现
这是gridView为空数据时显示的表头 下面直接填代码: function Add() { //动态添加行 $("#gridCustomerView").append(" ...
- 【BZOJ】1030: [JSOI2007]文本生成器(递推+ac自动机)
http://www.lydsy.com/JudgeOnline/problem.php?id=1030 其实做了1009也不会感到很难了,无非将kmp变成了ac自动机. 设f[i,j]表示前i个串当 ...
- 【BZOJ】1025: [SCOI2009]游戏(置换群+dp+特殊的技巧+lcm)
http://www.lydsy.com/JudgeOnline/problem.php?id=1025 首先根据置换群可得 $$排数=lcm\{A_i, A_i表示循环节长度\}, \sum_{i= ...
- redis是如何存储对象和集合的
在项目中,缓存以及mq消息队列可以说是不可或缺的2个重要技术.前者主要是为了减轻数据库压力,大幅度提升性能.后者主要是为了提高用户的体验度,我理解的是再后端做的一个ajax请求(异步),并且像ribb ...
- PHPMailer发送邮箱(ThinkPHP实战篇)
1.下载phpmailer文件库 2.引用文件,此处将代码放到 :函数库中,function.php function sendConsultantMessage($sendData){ Vendor ...