目前 N1跑 Emuelec 的办法都是替换补丁,补丁里的内核是从 CoreELEC 编译来的,所以启动时会显示 CoreELEC 的 logo,对于洁癖党来说不能忍受,而且一直用这个补丁内核的话,就不能随 EmuELEC 的更新而更新。哪有没有办法直接启动原版呢?答案是肯定的。
首先得搞清楚为什么N1不能启动原版的原因。那是因为 EmuELEC 的内核打包成 Android boot image 格式,而 N1 的 uboot 却只支持未经压缩的内核,那我们只要想办法从 EmuELEC 的中解包出来未经压缩的内核和 initramfs 就可以了。
具体方法
1.从新版的EmuELEC镜像中获取 kernel.img,然后下载解包工具http://whiteboard.ping.se/uploads/Android/unmkbootimg.gz,解压,在linux环境运行。
- ./unmkbootimg kernel.img
会得到类似以下的文件:
- initramfs.cpio.gz
- zImage
2.把initramfs.cpio.gz打包成uInitrd。
- mkimage -A arm64 -T kernel -C none -d initramfs.cpio.gz uInitrd
3.解压 zImage,获得未压缩的内核。
- mv zImage image.lzo
- lzop -d image.lzo -o kernel
4.这里得到的 kernel 就是未压缩的内核,把他改名成 kernel.img。
- mv kernel kernel.img
5.大功告成,把 kernel.img 和 uInitrd 替换补丁里的同名文件,启动时就是用原版内核了。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。