如何做rom,体验做rom过程,附图文教程,感谢各位romer
2014-11-14 15:46
796 查看
http://bbs.gfan.com/android-5408130-1-1.html
有人问我,我简单的写一下,来源XDA,运行环境ubuntu 10.4。
ubuntu安装很简单,在windows下安装一个虚拟机vmware或者VirtualBox,网上都有下载,建立一个虚拟机载入ubuntu安装盘镜像就可以了,全中文无难度。
http://www.ubuntu.com.cn/download/(我下载的32位12.04.1,用的内存卡安装,使用imgewriter
ImageWriter.zip (19.66 KB) (先将ubuntu.iso改为ubuntu.raw,就是改后缀,然后点击copy)写入内存卡,安装的win7+ubuntu双系统)
下载ext4_utils源码包编译。
ext4_utils.tar (200 KB)
这是我编译好的:
make_ext4fs.tar (80 KB)
~/work$ cd ext4_utils
~/work/ext4_utils$ make clean
rm -rf *.o make_ext4fs simg2img
~/work/ext4_utils$ make
gcc -I. -DANDROID -c make_ext4fs.c
gcc -I. -DANDROID -c make_ext4fs_main.c
gcc -I. -DANDROID -c ext4_utils.c
gcc -I. -DANDROID -c allocate.c
gcc -I. -DANDROID -c backed_block.c
gcc -I. -DANDROID -c output_file.c
gcc -I. -DANDROID -c contents.c
contents.c: In function ‘make_directory’:
contents.c:118: warning: format ‘%llu’ expects type ‘long long unsigned int’, but argument 4 has type ‘u32’
gcc -I. -DANDROID -c extent.c
gcc -I. -DANDROID -c indirect.c
gcc -I. -DANDROID -c uuid.c
gcc -I. -DANDROID -c sha1.c
gcc -I. -DANDROID -c sparse_crc32.c
gcc make_ext4fs.o make_ext4fs_main.o ext4_utils.o allocate.o backed_block.o output_file.o contents.o extent.o indirect.o uuid.o sha1.o sparse_crc32.o -o make_ext4fs -lz
gcc -I. -DANDROID -c simg2img.c
gcc simg2img.o sparse_crc32.o -o simg2img
~/work/ext4_utils$
如果有错误/usr/bin/ld: cannot find -lz
就需要安装zlib库,运行:
sudo apt-get install zlib1g-dev
上面这些指令可以不用做,直接用小路编译的ext4_utils就行,在主文件夹下新建文件夹重命名为work(名字随便,最好英文),将ext4_utils解压进work文件夹
把得到的make_ext4fs simg2img 和mkuserimg.sh放在你的工作目录下(就是work/ext4_utils文件夹,不过我是直接将这三个文件及ext4_utils文件夹里的全部内容直接放在了work文件夹根目录,因为开始所有文件放在work/ext4_utils文件夹时候,执行ls命令的时候什么东西都没出现),把固件包里解压出来的factoryfs.img拷贝到工作目录。
运行 simg2img factoryfs.img ZNKG5.img 得到512m的 ZNKG5.img,然后就可以挂载了(运行之前将simg2img的权限改为读写,否则运行不了)。
~/work$ ./simg2img factoryfs.img ZNKG5.img
~/work$ mkdir ZNKG5
~/work$ sudo mount -o loop ZNKG5.img ZNKG5
这样你就可以对固件做修改了,可以root固件,可以精简固件,这里主要提一下权限问题,不要轻易修改这个目录的权限,要保持默认的权限,不然你打包回去会有问题的,这里我举个例子,我准备把su这个文件加到固件的bin目录下,并且修改权限。 ~/work/ZNKG5/bin$ sudo cp ~/work/su ./
~/work/ZNKG5/bin$ ls -l su
-rwxr-xr-x 1 root root 26264 2011-07-17 21:16 su
~/work/ZNKG5/bin$ sudo chown root.2000 su
~/work/ZNKG5/bin$ ls -l su
-rwxr-xr-x 1 root 2000 26264 2011-07-17 21:16 su
~/work/ZNKG5/bin$ sudo chmod 06755 su
~/work/ZNKG5/bin$ ls -l su
-rwsr-sr-x 1 root 2000 26264 2011-07-17 21:16 su
~/work/ZNKG5/bin$
打包很简单。
我是这么做的,避免无权限的问题。
sudo ./make_ext4fs -l 512M -s -a system ZNKG5-new.img ./ZNKG5
Creating filesystem with parameters:
Size: 536870912
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 2048
Label:
Blocks: 131072
Block groups: 4
Reserved block group size: 31
Created filesystem with 1224/32768 inodes and 125043/131072 blocks
我来解释下这个命令的参数:"
-l 512M"是分区大小,i9100的system分区是512M;
-s就是生成ext4的S模式制作;
"-a system",是指这个img用于android系统,挂载点是/system,使用这个参数,make_ext4fs会根据private/android_filesystem_config.h里定义好的权限来给文件夹里的所有文件重新设置权限,如果你刷机以后发现有文件权限不对,可以手工修改android_filesystem_config.h来添加权限,重新编译make_ext4fs,也可以不使用 “-a system”参数,这样就会使用文件的默认权限。
得到的ZNKG5-new.img 就可以改名成factoryfs.img打包成tar刷机了。
move ZNKG5-new.img factoryfs.img
tar -cvf pda.tar factoryfs.img
如有错漏请指教,谢谢。
有人问我,我简单的写一下,来源XDA,运行环境ubuntu 10.4。
ubuntu安装很简单,在windows下安装一个虚拟机vmware或者VirtualBox,网上都有下载,建立一个虚拟机载入ubuntu安装盘镜像就可以了,全中文无难度。
http://www.ubuntu.com.cn/download/(我下载的32位12.04.1,用的内存卡安装,使用imgewriter
ImageWriter.zip (19.66 KB) (先将ubuntu.iso改为ubuntu.raw,就是改后缀,然后点击copy)写入内存卡,安装的win7+ubuntu双系统)
下载ext4_utils源码包编译。
ext4_utils.tar (200 KB)
这是我编译好的:
make_ext4fs.tar (80 KB)
~/work$ cd ext4_utils
~/work/ext4_utils$ make clean
rm -rf *.o make_ext4fs simg2img
~/work/ext4_utils$ make
gcc -I. -DANDROID -c make_ext4fs.c
gcc -I. -DANDROID -c make_ext4fs_main.c
gcc -I. -DANDROID -c ext4_utils.c
gcc -I. -DANDROID -c allocate.c
gcc -I. -DANDROID -c backed_block.c
gcc -I. -DANDROID -c output_file.c
gcc -I. -DANDROID -c contents.c
contents.c: In function ‘make_directory’:
contents.c:118: warning: format ‘%llu’ expects type ‘long long unsigned int’, but argument 4 has type ‘u32’
gcc -I. -DANDROID -c extent.c
gcc -I. -DANDROID -c indirect.c
gcc -I. -DANDROID -c uuid.c
gcc -I. -DANDROID -c sha1.c
gcc -I. -DANDROID -c sparse_crc32.c
gcc make_ext4fs.o make_ext4fs_main.o ext4_utils.o allocate.o backed_block.o output_file.o contents.o extent.o indirect.o uuid.o sha1.o sparse_crc32.o -o make_ext4fs -lz
gcc -I. -DANDROID -c simg2img.c
gcc simg2img.o sparse_crc32.o -o simg2img
~/work/ext4_utils$
如果有错误/usr/bin/ld: cannot find -lz
就需要安装zlib库,运行:
sudo apt-get install zlib1g-dev
上面这些指令可以不用做,直接用小路编译的ext4_utils就行,在主文件夹下新建文件夹重命名为work(名字随便,最好英文),将ext4_utils解压进work文件夹
把得到的make_ext4fs simg2img 和mkuserimg.sh放在你的工作目录下(就是work/ext4_utils文件夹,不过我是直接将这三个文件及ext4_utils文件夹里的全部内容直接放在了work文件夹根目录,因为开始所有文件放在work/ext4_utils文件夹时候,执行ls命令的时候什么东西都没出现),把固件包里解压出来的factoryfs.img拷贝到工作目录。
运行 simg2img factoryfs.img ZNKG5.img 得到512m的 ZNKG5.img,然后就可以挂载了(运行之前将simg2img的权限改为读写,否则运行不了)。
~/work$ ./simg2img factoryfs.img ZNKG5.img
~/work$ mkdir ZNKG5
~/work$ sudo mount -o loop ZNKG5.img ZNKG5
这样你就可以对固件做修改了,可以root固件,可以精简固件,这里主要提一下权限问题,不要轻易修改这个目录的权限,要保持默认的权限,不然你打包回去会有问题的,这里我举个例子,我准备把su这个文件加到固件的bin目录下,并且修改权限。 ~/work/ZNKG5/bin$ sudo cp ~/work/su ./
~/work/ZNKG5/bin$ ls -l su
-rwxr-xr-x 1 root root 26264 2011-07-17 21:16 su
~/work/ZNKG5/bin$ sudo chown root.2000 su
~/work/ZNKG5/bin$ ls -l su
-rwxr-xr-x 1 root 2000 26264 2011-07-17 21:16 su
~/work/ZNKG5/bin$ sudo chmod 06755 su
~/work/ZNKG5/bin$ ls -l su
-rwsr-sr-x 1 root 2000 26264 2011-07-17 21:16 su
~/work/ZNKG5/bin$
打包很简单。
我是这么做的,避免无权限的问题。
sudo ./make_ext4fs -l 512M -s -a system ZNKG5-new.img ./ZNKG5
Creating filesystem with parameters:
Size: 536870912
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 2048
Label:
Blocks: 131072
Block groups: 4
Reserved block group size: 31
Created filesystem with 1224/32768 inodes and 125043/131072 blocks
我来解释下这个命令的参数:"
-l 512M"是分区大小,i9100的system分区是512M;
-s就是生成ext4的S模式制作;
"-a system",是指这个img用于android系统,挂载点是/system,使用这个参数,make_ext4fs会根据private/android_filesystem_config.h里定义好的权限来给文件夹里的所有文件重新设置权限,如果你刷机以后发现有文件权限不对,可以手工修改android_filesystem_config.h来添加权限,重新编译make_ext4fs,也可以不使用 “-a system”参数,这样就会使用文件的默认权限。
得到的ZNKG5-new.img 就可以改名成factoryfs.img打包成tar刷机了。
move ZNKG5-new.img factoryfs.img
tar -cvf pda.tar factoryfs.img
如有错漏请指教,谢谢。
相关文章推荐
- 安卓小白如何制作一个精简ROOT的卡刷ROM?小白制作ROM包详细图文教程
- 【ROM制作工具】小白如何进行ROM解包,精简,修改,授权,打包详细图文教程
- 如何使win2003服务器自动定时重启的图文教程
- Ubuntu安装过程之磁盘分区图文教程[转帖]
- ROM制作教程 如何创建一个刷机包
- 如何开启win7端口的图文教程
- Windows 7 Tips: 如何更改系统的显示语言(图文教程)
- 如何远程连接SQL Server数据库的图文教程
- 教你如何用UltraISO制作U盘系统安装盘(图文教程)
- TortoiseHg 安装过程图文教程
- ROM制作教程-教你如何制作ROM
- 如何轻松更换Windows 8锁屏背景图片的图文教程
- Photoshop中临女子人像过程图文教程
- win7如何安装IIS,三种方法任你选(图文教程)
- 如何创建关联类和关联类如何和其他类关联的操作过程视频教程!!
- [笔记]如何屏蔽视频网站的片头广告——土豆(超详细图文教程)
- 如何远程连接SQL Server数据库图文教程
- 我对:“评:如何成为人尽皆知的C#开发人员”反馈,严重感谢各位!
- 图文讲解如何在outlook里设置绑定QQ企业邮箱教程
- 如何使用Win7 IIS信息服务器搭建局域网FTP服务器【图文教程】