现在的位置: 首页 > 综合 > 正文

完全编译制作 rhodium-nand,xdanrdoid的直刷文件(How to compile rhodium-nand(include xdandroid))

2012年04月17日 ⁄ 综合 ⁄ 共 5804字 ⁄ 字号 评论关闭

完全编译 rhodium-nand,xdanrdoid的直刷文件

 本文目录:

一、说明与用途

二、搭建环境,下载android、kernel、交叉编译器等文件

1. 开发环境搭建可参考:

2. 下载必须的文件:

三、编译

1.RHODIMG.NBH(LK for Rhodium,LK介绍)

(1)得到lk.bin:

(2)编译NBH

2. 内核zImage的编译:

3. 制作自己的cwm_recovery.img:

4. 刷机包rhod-nand-weihongcsu-v0.5.zip的制作:

四、参考资料

 

  一、说明与用途: 

      本文将介绍如何编译HTC Touch pro2 sprint 的nand直刷android需要的所有文件, 该机型也叫(也叫xv6875,也叫rhod400)。 

        从这里下载weihongcsu制作的nand直刷文件(内核是2.6.27.46,android是gingerbread
2.3.7),现在的版本只是能刷上,功能未测试(因为weihongcsu的目的是研究android和kernel的移植)。下载后,请按照说明刷上。
 

        该编译,对一般的nand 直刷,有一定的通用意义。

       现在介绍如何编出各个文件:

二、搭建环境,下载android、kernel、交叉编译器等文件

1. 开发环境搭建:

我的系统是ubuntu10.10,

$sudo apt-get install git-core build-essential gnupg flex bison gperf libsdl-dev esound zip curl libwxgtk2.6-0 libc6-dev-i386 g++-multilib lib32z1-dev lib32ncurses5-dev java-common openjdk-6-jdk

2. 下载必须的文件:

(1)RHODIMG.NBH需要:

git
clone git://gitorious.org/tinboot-for-linux-msm/tinboot-linux-msm.git

git
clone 
git://gitorious.org/~acl/lk-msm7200a-htc-wince/acls-lk-msm7200a-htc-wince.git

 
     之后切换分支:在acls-lk-msm7200a-htc-wince文件夹下:

 
      git checkout google_lk

(2)rhod-nand-weihongcsu-v0.5.zip需要:

(i)内核:git
clone git://gitorious.org/~acl/linux-on-qualcomm-s-msm/linux-msm-rhod-nand.git

(ii)repo的下载与配置:

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

(iii)xdandroid2.3.7下载:

$ PATH=~/bin:$PATH
$ mkdir ~/xdandroid2.3
$ cd ~/xdandroid2.3
$ repo init -u git://gitorious.org/xdandroid/manifest.git -b gingerbread
$ repo sync

 

(3)下载编译器并解压:

编译器一:arm-2010.09-51-arm-none-eabi-i686-pc-linux-gnu.tar.bz2:

https://sourcery.mentor.com/sgpp/lite/arm/portal/package7813/public/arm-none-eabi/arm-2010.09-51-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

编译器二:arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

https://sourcery.mentor.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

三、编译

从底层到上层依次介绍:

     1.RHODIMG.NBH(LK
for Rhodium
,LK介绍:LK Bootloader(L)ittle (K)ernel based Android
bootloader

     (1)得到lk.bin:


$ cd acls-lk-msm7200a-htc-wince
$ ./build.sh

    其中,build.sh为:

export TOOLCHAIN_PREFIX=arm-none-linux-gnueabi-

#改自己的路径,arm-*****的编译器里,只能用arm-2009q3(本文下载的),其他版本不行,原因未深究。

export PATH=$PATH:/home/weihongcsu/disk2/arm-2009q3/bin

_XPROJ=msm7200a_htc_wince

make $_XPROJ clean

make $_XPROJ

         将acls-lk-msm7200a-htc-wince/build-msm7200a_htc_wince下的lk.bin放在tinboot-linux-msm/kernel/下。

lk.bin的获得要感谢pieceking的帮助,跟他发了多份邮件才解决的。

 

   (2)编译NBH

$ cd tinboot-linux-msm/

修改makelk.sh 中PATH变量为你的路径。

       $ ./makelk.sh

       会发现报错cp: cannot stat `/home/weihongcsu/disk2/nand/tinboot-linux-msm/tools/lk_payload': No such file or directory

    解决办法:/tinboot-linux-msm/tools 下的rhod_payload重命名为lk_payload,应该是ACL修改时忘记上传了,给他发过信息了。

  OK,得到RHODIMG.NBH,可以刷一下试试!

    

    
2. 内核zImage的编译:

$cd linux-msm-rhod-nand

$./fullbuild.sh

fullbuild.sh内容为:

#!/bin/sh

ANDROID=/home/weihongcsu/disk2/nand
# TINBOOT -- tinboot directory
TINBOOT=$ANDROID/tinboot-linux-msm
# KERNEL_PATH -- directory containing the linux-msm kernel source
KERNEL_PATH=$ANDROID/linux-msm-rhod-nand
# TOOLCHAIN_PATH -- directory containing the arm toolchain
TOOLCHAIN_PATH=~/disk2/eabi/arm-2010.09/bin/arm-none-eabi
# MODULES_PATH -- directory for modules
MODULES_PATH=$TINBOOT/modules

make -j4 ARCH=arm htc_msm_nand_defconfig
make ARCH=arm CROSS_COMPILE=$TOOLCHAIN_PATH- INSTALL_MOD_PATH=$MODULES_PATH zImage modules modules_install

经weihongcsu测试,该版本编译器不会出问题,高版本或低版本都会出问题,原因未深究。

zImage位于:linux-msm-rhod-nand/arch/arm/boot/

 

       3. 制作自己的cwm_recovery.img

$ ./split_bootimg.pl cwm_recovery.img

将zImage放到本级目录

$ ./mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel zImage --ramdisk cwm_recovery.img-ramdisk.gz -o cwm_recovery.img

split_bootimg.pl和mkbootimg可以在“rhod-nand-weihongcsu-v0.5-xv6875直刷文件” 中找到。

OK,生成了自己的cwm_recovery.img。详细解释可以参考:如何解包/编辑/打包Android的boot.img文件

我的cwm_recovery.img模板是从这里下载的:http://code.google.com/p/rhodium-nand/downloads/list

 

      4. 刷机包rhod-nand-weihongcsu-v0.5.zip的制作:

(1)编译xdandroid:

       参考这两个文档完成编译:

     http://xdandroid.com/wiki/Build_Configuration

       http://xdandroid.com/wiki/Building_and_Packaging   

   Building_and_Packaging中指定下载的zip文件(signed-dream_devphone_userdebug-ota-14721.zip)如果源地址不能下载,可再Google,百度中搜索下载。

(2)替换原有的system目录
解压rhod-nand-weihongcsu-v0.5.zip,会看到:
boot.img
META-INF
system
删除system,然后把/xdandroid2.3/out/target/product/msm/这个目录下面的system拷贝到当前的工作目录下。

(3)修改update-script脚本
修改META-INF/com/google/android目录下的那个叫做update-script的脚本,只要修改一下即可,主要是删除一些不存在的文件以及增加一些文件的权限之类的定义(语法十分清晰,一目了然)。把需要“预装”到刷机包里面的apk安装程序都准备好,将这些apk拷贝到system/app目录下即可。

(4)生成boot.img。

       方法类似生成cwm_recovery.img

$ ./split_bootimg.pl
boot.img

将zImage放到本级目录

$ ./mkbootimg --cmdline 'lcd.density=240 msmts_calib=0x9f.0x39a.0x35c.0x78  clock_7x00.grp=0xa99  hw3d.force=1 board-htcrhodium.is_cdma=1  msmvkeyb_toggle=off pmem.extra=1 force_cdma=1  gsensor_axis=2,1,3
pm.sleep_mode=1' --kernel zImage --ramdisk boot.img-ramdisk.gz -o boot.img

split_bootimg.pl和mkbootimg可以在“rhod-nand-weihongcsu-v0.5-xv6875直刷文件” 中找到。

OK,生成了自己的boot.img。详细解释可以参考:如何解包/编辑/打包Android的boot.img文件

(5)重新打包成update.zip

本级目录保留以下文件,其余都删除:

boot.img
META-INF
system

之后:

$ zip -r update.zip . <---注意这最后的“.”是必不可少的,代表是当前路径下的意思。

(6)为做好的刷机包签名

在上面提到的链接中,有一个叫做AutoSign的工具,打开一看是一个jar格式的工具包。

/Files/shenhaocn/autosign.zip

运行如下命令对刷机包进行签名:
$ java -jar autosign.jar update.zip update_signed.zip

ok,签名完毕后,就可以备份一下手机里面的东西,测试一下了!

rhod-nand-weihongcsu-v0.5.zip的制作详细解释可以参考:Android平台刷机包修改制作方法

 

四、参考资料(除了以上提到的):

1、justvu的帖子:

[6875] 12.16日更新我制作的NAN直刷ROM:无睡死有铃声可照相支持WIFI/3.5G/USB/GSM/WCDMA/CDMA    

 2、内核开发者natemcnutty写的: How
To Compile Your Own Kernels, Modules, Tinboot (NAND boot), and More for Beginners,
http://forum.ppcgeeks.com/android-tp2/136054-how-compile-your-own-kernels-modules-tinboot-nand-boot-more-beginners.html

3、xdandroid.com的官方指南:http://xdandroid.com/wiki/Getting_the_Source 

  http://xdandroid.com/wiki/Build_Configuration

   http://xdandroid.com/wiki/Building_and_Packaging  

4、android官网:http://source.android.com/source/downloading.html

 

本文地址为:http://blog.csdn.net/weihongcsu/article/details/7075494转载请注明出处(WalterLee(weihongcsu))

 

抱歉!评论已关闭.