分享

【GT-I9100】让你自己改你自己的内核支持2.3.6WIFI

 昵称12142552 2013-07-30
本帖最后由 xuhaoyangx 于 2012-1-19 14:33 编辑
首先感谢谢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./public/gnu_toolchain/arm-none-eabi/arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
115分流http:///file/be4th6sv
打开linux的终端,第一次sudo需要输入你linux的登陆密码,此步骤需联网
没有安装realpath工具的请安装:
  1. sudo apt-get install realpath
复制代码



修改repack文件,开头部分定义你自己的编译器可执行文件路径,和编译器的路径。
COMPILER=/编译器所存的地址/bin/arm-none-eabi
COMPILER_LIB=/编译器所存的地址 /lib/gcc/arm-none-eabi/4.5.2
编译器所存的地址就表示你需要改动的,你存在哪儿就填哪儿 尽量地址中不纯在中文名字
修改repack.jpg
以下操作都是在root shell(在shell下运行sudo -i)下进行的,我使用root权限来解包、修改和打包是因为这样可以保留initramfs文件的权限。 sudo.jpg
解包zImage

  1. root@xhy-VirtualBox:/home/xhy/桌面/pack# ./unpack.sh zImagevil vil
  2. [I] Extracting lzma'd kernel image from file: zImagevil (start = 9772)
  3. [I] CPIO compression type detected = none | offset = 163840
  4. [I] Extracting non-compressed CPIO image from kernel image (offset = 163840)
  5. [I] Expanding CPIO archive: initramfs.cpio to vil.
复制代码
zImagevil是我处理的内核名字 vil是拆包initramfs后的文件夹
解开zimage.jpg
分离开之后 你会发现处理的文件夹里面多出了vil文件夹
不少人都知道2.3.6是改动了wifi启动方式
修改下某些代码即可变为2.3.6专用内核了
继续看图修改 下面极为需要改动的代码 在vil文件夹(或者你输出的文件)中的init.rc文件里

首先在终端里面
  1. gedit vil/init.rc
复制代码

打开init.jpg
之后会弹出一个文本窗口,查找下面内容
  1. service wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/bcm_supp.conf
复制代码
查找.jpg

改成下面这样保存即可
  1. service wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/bcm_supp.conf
  2.     class main
  3.     socket wpa_eth0 dgram 0660 wifi wifi
  4.     disabled
  5.     oneshot
复制代码

添加.jpg
打包zImage
先将处理好的vil文件夹打包成initramfs
  1. root@xhy-VirtualBox:/home/xhy/桌面/pack# ./gen_initramfs.sh -o initramfs.cpio -u 0 -g 0 ./vil
  2. initramfs.cpio filesize: 5399552

复制代码
打包initramfs.jpg
接下来合并initramfs与zImage
  1. root@xhy-VirtualBox:/home/xhy/桌面/pack# ./repack.sh zImagevil initramfs.cpio[I] ---------------------------kernel repacker for i9100---------------------------
  2. [I] Extracting lzma'd kernel from zImagevil (start = 9772)
  3. [I] Non-compressed CPIO image from kernel image (offset = 163840)
  4. [I] CPIO image MAX size:5399552
  5. [I] Head count:5563392
  6. [I] Making head.img ( from 0 ~ 163840 )
  7. [I] Making a tail.img ( from 5563392 ~ 12823616 )
  8. [I] Current ramdsize using cat : 5399552 with required size : 5399552 bytes
  9. [I] cat accepted!
  10. [I] Merging [head ramdisk] tail
  11. [I] Now we are rebuilding the zImage
  12. [I] Image ---> piggy.lzma
  13. [I] piggy.lzma ---> piggy.lzma.o
  14. [I] Compiling head.o
  15. [I] Compiling misc.o
  16. [I] Compiling decompress.o
  17. [I] Compiling lib1funcs.o
  18. [I] Create vmlinux.lds
  19. [I] head.o misc.o piggy.lzma.o decompress.o lib1funcs.o---> vmlinux
  20. [I] vmlinux ---> zImage
  21. [I] Compiled new zImage size:5296068
  22. [I] new_zImage has been created
  23. [I] Cleaning up...
  24. [I] finished...
复制代码
合并.jpg

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多