首先感谢谢xiao1u根据XDA的一些东西写出方便我们的内核initramfs拆包工具
三星的内核不同于 HTC 索尼爱立信机子等boot.ing,三星内核中没有直接的ramdisk启动
而由initramfs模块代替了ramdisk,而拆开方式也略有不同。
稍后增加如何让官方内核增加自动root recovery等教程
二楼奉上如何做odin刷机包理论上支持所有三星安卓机子,谷歌三儿子 二儿子除外
准备工作:
linux系统一个(本来尝试过WIN系统下的cywin但是打包initramfs时候有问题)
虚拟机安装ubuntu等等皆可以(VMwave、virtualbox这两款虚拟机推荐下)
解包打包工具:xiaolu-galaxys2_kernel_repack-2df9078.zip(5.13 MB) 不要用旧版的
linux环境下的编译器
https://sourcery.mentor.com/public/gnu_toolchain/arm-none-eabi/arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
115分流:http://115.com/file/be4th6sv
打开linux的终端,第一次sudo需要输入你linux的登陆密码,此步骤需联网
没有安装realpath工具的请安装:复制代码
- sudo apt-get install realpath
修改repack文件,开头部分定义你自己的编译器可执行文件路径,和编译器的路径。
COMPILER=/编译器所存的地址/bin/arm-none-eabi
COMPILER_LIB=/编译器所存的地址 /lib/gcc/arm-none-eabi/4.5.2
编译器所存的地址就表示你需要改动的,你存在哪儿就填哪儿 尽量地址中不纯在中文名字
以下操作都是在root shell(在shell下运行sudo -i)下进行的,我使用root权限来解包、修改和打包是因为这样可以保留initramfs文件的权限。
解包zImagezImagevil是我处理的内核名字 vil是拆包initramfs后的文件夹复制代码
- root@xhy-VirtualBox:/home/xhy/桌面/pack# ./unpack.sh zImagevil vil
- [I] Extracting lzma'd kernel image from file: zImagevil (start = 9772)
- [I] CPIO compression type detected = none | offset = 163840
- [I] Extracting non-compressed CPIO image from kernel image (offset = 163840)
- [I] Expanding CPIO archive: initramfs.cpio to vil.
分离开之后 你会发现处理的文件夹里面多出了vil文件夹
不少人都知道2.3.6是改动了wifi启动方式
修改下某些代码即可变为2.3.6专用内核了
继续看图修改 下面极为需要改动的代码 在vil文件夹(或者你输出的文件)中的init.rc文件里
首先在终端里面复制代码
- gedit vil/init.rc
之后会弹出一个文本窗口,查找下面内容复制代码
- service wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/bcm_supp.conf
改成下面这样保存即可复制代码
- service wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/bcm_supp.conf
- class main
- socket wpa_eth0 dgram 0660 wifi wifi
- disabled
- oneshot
打包zImage
先将处理好的vil文件夹打包成initramfs复制代码
- root@xhy-VirtualBox:/home/xhy/桌面/pack# ./gen_initramfs.sh -o initramfs.cpio -u 0 -g 0 ./vil
- initramfs.cpio filesize: 5399552
接下来合并initramfs与zImage复制代码
- root@xhy-VirtualBox:/home/xhy/桌面/pack# ./repack.sh zImagevil initramfs.cpio[I] ---------------------------kernel repacker for i9100---------------------------
- [I] Extracting lzma'd kernel from zImagevil (start = 9772)
- [I] Non-compressed CPIO image from kernel image (offset = 163840)
- [I] CPIO image MAX size:5399552
- [I] Head count:5563392
- [I] Making head.img ( from 0 ~ 163840 )
- [I] Making a tail.img ( from 5563392 ~ 12823616 )
- [I] Current ramdsize using cat : 5399552 with required size : 5399552 bytes
- [I] cat accepted!
- [I] Merging [head ramdisk] tail
- [I] Now we are rebuilding the zImage
- [I] Image ---> piggy.lzma
- [I] piggy.lzma ---> piggy.lzma.o
- [I] Compiling head.o
- [I] Compiling misc.o
- [I] Compiling decompress.o
- [I] Compiling lib1funcs.o
- [I] Create vmlinux.lds
- [I] head.o misc.o piggy.lzma.o decompress.o lib1funcs.o---> vmlinux
- [I] vmlinux ---> zImage
- [I] Compiled new zImage size:5296068
- [I] new_zImage has been created
- [I] Cleaning up...
- [I] finished...
联系客服