ROM定制开发入门-system userdata镜像解包打包
一、linux环境解包打包
环境要求:Ubuntu
此处以system.img和userdata.img打包为例,基于谷歌源码编译的工具使用方法和命令。
1.转换格式
在解包过程中,system或者userdata镜像文件经常以两种格式出现:raw和sparse。
一种是raw ext4 image,即经常说的raw image,使用file观察它:
其特点是完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载,因此比较大。
$ file system.img
system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)
信息非常明确了。
另一种是sparse ext4 image,即经常说的simg,使用file观察它:
$ file system.img
system.img: data
如果格式为data,需要从data格式转成ext4格式,也就是raw格式,如下
> simg2img system.img system.img.ext4 //转换格式
> mkdir tmp //新建临时文件夹
> sudo mount -o loop system.img.ext4 tmp 将ext4文件挂载到tmp目录
2.常规打包:
先ls -l system.img.ext4看大小,假设是1073741824,这个参数后边用到。(此处l是英文字母L)
> ./make_ext4fs -s -l 2684354560 -a system new_system.img ./tmp
3.安卓5.0以及5.0以上版本打包,需注意:
命令如下:
$ ./make_ext4fs -s -T 1421464178 -S file_contexts -l 1073741824 -a system new_system.img system/
或者:
./make_ext4fs -s -S file_contexts -l 2048M -a system new_system.img system/
命令参数说明:
// -s 表示安静处理,不输出动作,可以不带该参数
// -T 表示Unix时间戳,对system.img中的文件设置修改时间,执行“
date +%s”获取某个时间点的时间戳,也可以直接不用-T 1421464178 ;
// -S 表示sepolicy 的file_contexts,把该文件放到此目录下,文件取自官方system/root路径和卡刷包自带(或解压内核,在内核里面)
// -l 表示最大的文件大小(受限于分区大小);可以ls -l 当前转格式出来的system大小、单位也可以为MB
// -a 表示Android的mount点,比如system、userdata、recovery;
// oksystem.img 表示输出文件名;
// system/ 表示输入目录,该目录下有framework、app、bin等目录;
上述的simg2img和make_ext4fs是android自带的工具,如果有android源码而且编译通过的话, 这些工具可以在/out/host/linux-x86/bin中找到。
Linux工具下载:
https://github.com/Loren-Yi/make_ext4fs
二、windows下解包打包
仅列出如下,不一一说明用法,如下:
1.第三方PC客户端工具
2.第三方批处理脚本工具
3.主流客户端工具:ROM定制大师,ROM制作工具和蘑菇助手
ROM定制开发入门-system userdata镜像解包打包相关推荐
- 安卓system userdata镜像解包打包
linux环境解包打包 环境要求:Ubuntu 此处以system.img和userdata.img打包为例,基于谷歌源码编译的工具使用方法和命令. 1.转换格式 在解包过程中,system或者use ...
- 开机动画适配方案_高通平台刷机包定制方案适配-ROM定制开发入门到精通
高通平台刷机包定制方案适配-ROM定制开发入门到精通 根据新老平台,高通平台线刷包至少要这样几个基本文件,但不一定全部都需要: 8x10_msimage.mbn----平台镜像,是个完整的磁盘,就是s ...
- android系统system镜像解包打包制作过程
** android系统system镜像解包打包制作过程 首先确认你的system是哪种类型镜像:yaffs2 ? 还是sparse? 这两种镜像使用的解包工具也不一样,下面以sparse类型镜像描述 ...
- ROM定制开发入门-第三方ROM发展现状
第三方ROM的诞生 早期手机厂商研发能力不足,ROM体验差,UI丑陋,涌现出MIUI.乐蛙.百度云.以及国外CyanogenMod一大片第三方ROM,长期占据市场,造就了刷机需求的爆发式增长,各种手机 ...
- ROM定制开发入门-linux开发环境安装和准备
环境安装-Linux环境 主要是Ubuntu安装复杂些,Ubuntu下操作的相对较少,一般为打包解包,打包环境配置相对简单: 安装ubuntu 配置selinux 以下是安装Ubuntu的教程: (为 ...
- android dat怎么打开方式,【玩机组教程】system.new.dat解包打包教程(支持安卓5+)...
本帖最后由 卡卡看天 于 2017-3-17 12:33 编辑 [2016年10月28日更新]为解决各位加油遇到的各种问题,今天我把自己优化过的工具发上来供大家下载,改为bat批处理,更方便使用. 自 ...
- 后悔没早点看这篇直播系统定制开发入门篇
直播想必大家都不陌生了,在互联网的风口下,以及5G技术的推动,流量带宽的提高,使得直播在我们生活中扮演着越来越重要的角色.本文先来讲一下入门直播需要了解的一些基本概念,搜集整理了直播入门需要了解的一些 ...
- 《微信小程序:开发入门及案例详解》—— 3.4 小结
本节书摘来自华章出版社<微信小程序:开发入门及案例详解>一 书中的第3章,第3.4节,作者李骏 边思,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.4 小 ...
- Go 语言快速开发入门(基础语法详解,第一节)
Go 语言快速开发入门(基础语法详解,第一节) 一.基础语法详解,第一节 1.HelloWorld 1.1.代码编写和解释 1.2.go语言注意事项 2.Go 语言的转义字符&&Go ...
最新文章
- TCP长连接和短连接
- 微信小程序转百度小程序修改
- 01-Secure Payload Dispatcher (SPD)
- py2.7+pyqt4开发端口检测工具
- 8、java中的内部类
- 在线js拼接html代码,关于js拼接html元素?
- 深度学习中为什么要使用多于一个epoch?
- priority_queue 优先队列 hdu裸题。
- C语言程序设计第三版微课版,C语言程序设计(第3版 微课版)
- pve万兆网卡驱动_WiFi 6扩展有什么选择?Killer AX1650X无线网卡深度测评
- 微机原理与接口技术考点一文全(待更)
- 项目管理工具maven的使用
- 【Unity5】实现24小时日出日落的效果 24小时天幕系统
- 博观约取,厚积薄发,聊一聊最近读完的几本书,太上头了~
- 408代码题暴力破解——混分归纳总结
- 4根网线水晶头接法(8根只接4根即可通讯)
- 【机器学习】【可解释性】LIME
- Python-高级:多任务-协程 案例:图片下载器
- ZF GE5060F47/153
- 贪心法 第1关:找零钱
热门文章
- 壳聚糖-聚乙二醇-N-羟基琥珀酰亚胺|Chitosan-PEG-NHS
- 怎样做研究(五) 刘挺
- 团建游戏---落难月球
- 有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子。如此循环,直到留下最后一个人。问留下来的人的编号。
- Python/Pandas Categorical对象labels和levels属性已弃用,改为codes和categories
- 康泰克采样器完整版-Native Instruments Kontakt v6.3.1 Full WiN
- 【docker-jenkins搭建】docker的jenkins容器java版本(四)
- guile学习(三)快捷键ctrl+d,以及一个数包含的偶数的阶乘的和怎么计算
- 八竿子打不着的零碎记录
- mysql数据库实验报告一