准备工作
- CM7官方版的升级包
打开 http://mirror1./nightly/passion/ ,选择 Last Modified 是最近一天的下载即可。补丁文件
下载 hd2-update.zip这个太大了点,上传不了。要的找我哦。内核相关文件
-
zImage,initrd.gz,tun.ko,bcm4329.ko等等,以prj v0.4内核为例 prj-0.4.zip (2410 K) 下载次数:1 <DIV id=attach_65573_menu initialized="true" cache="1" fade="false" cover="0" layer="1" mtype="menu" ctrlkey="attach_65573" tip_4?><DIV xs0?>
ZIP刷机包制作 这个最简单,复制粘贴就可以了。
- 解压CM7官方升级包,得到META-INF,system两个文件夹和boot.img一个文件。
- 解压HD2补丁文件,得到update文件夹。
- 把内核文件tun.ko,bcm4329.ko等放到update\lib\modules目录下。或者有替他要替换的文件也可以放到update目录下。
- 新建boot文件夹,把zImage,initrd.gz放到boot目录下。
- 下载 updater-script.zip (2 K) 下载次数:1 ,解压后替换位于META-INF\com\google\android目录下的相应文件。
- 重新打包,压缩成zip文件即可。
如果刷机后遇到问题,请参考下面的镜像制作方法调整个别系统文件。
线刷(SD引号)系统镜像制作 准备一个linux机器(或者虚拟机),以下操作均在linux环境下进行。
- 新建一个文件夹,名字随便,假设为cm7。
- 把CM7官方升级包放到cm7目录下。
- 把HD2补丁文件解压放到cm7目录下。
- 把内核文件tun.ko,bcm4329.ko等放到update\lib\modules目录下。或者有替他要替换的文件也可以放到update目录下。
- 下载 mksystem.zip (2 K) 下载次数:1
,解压后放到cm7目录下。使用root用户运行mksystem.sh,即可生成system.img。
说明
- 默认生成的yaffs2镜像,如果需要ext2或squashfs镜像,请自行Google方法。
- boot.img做法就不说了。
正文到此结束,遇到问题请自行Google解决,此帖不会再更新。 下面贴的就是mksystem.sh,希望对大家有帮助。
- #!/bin/sh
- ####################
- # 获取当前路径
- ####################
- SCRIPT_PATH=`dirname $(readlink -f $0)`
- EXTRACT_PATH=$SCRIPT_PATH/extract
- ####################
- # 获取CM升级包名称
- # 解压缩CM升级包
- ####################
- BUILD=`ls $SCRIPT_PATH/*.zip | tail -1`
- BUILD_VER=`echo $BUILD | cut -d'-' -f2 | sed 's/.zip//'`
- unzip $SCRIPT_PATH/$BUILD -d $EXTRACT_PATH/
- ####################
- # 删除不需要的文件
- ####################
- # app
- rm $EXTRACT_PATH/system/app/CMWallpapers.apk
- rm $EXTRACT_PATH/system/app/Provision.apk
- rm $EXTRACT_PATH/system/app/RomManager.apk
- # etc
- rm $EXTRACT_PATH/system/etc/init.d/05mountsd
- rm $EXTRACT_PATH/system/etc/firmware/default*.acdb
- # lib
- rm $EXTRACT_PATH/system/lib/hw/gps.goldfish.so
- rm $EXTRACT_PATH/system/lib/hw/gps.mahimahi.so
- rm $EXTRACT_PATH/system/lib/hw/sensors.goldfish.so
- rm $EXTRACT_PATH/system/lib/hw/lights.mahimahi.so
- # tts
- rm $EXTRACT_PATH/system/tts/lang_pico/de-DE_gl0_sg.bin
- rm $EXTRACT_PATH/system/tts/lang_pico/de-DE_ta.bin
- rm $EXTRACT_PATH/system/tts/lang_pico/en-GB_kh0_sg.bin
- rm $EXTRACT_PATH/system/tts/lang_pico/en-GB_ta.bin
- rm $EXTRACT_PATH/system/tts/lang_pico/es-ES_ta.bin
- rm $EXTRACT_PATH/system/tts/lang_pico/es-ES_zl0_sg.bin
- rm $EXTRACT_PATH/system/tts/lang_pico/fr-FR_nk0_sg.bin
- rm $EXTRACT_PATH/system/tts/lang_pico/fr-FR_ta.bin
- rm $EXTRACT_PATH/system/tts/lang_pico/it-IT_cm0_sg.bin
- rm $EXTRACT_PATH/system/tts/lang_pico/it-IT_ta.bin
- # usr
- rm $EXTRACT_PATH/system/usr/keylayout/mahimahi-keypad.kl
- rm $EXTRACT_PATH/system/usr/keychars/mahimahi-keypad.kcm.bin
- ####################
- # 替换HD2相关文件
- # 修改build.prop,使其适用于HD2
- ####################
- cp -a $SCRIPT_PATH/update/* $EXTRACT_PATH/system
- mv $EXTRACT_PATH/system/lib/hw/sensors.mahimahi.so $EXTRACT_PATH/system/lib/hw/sensors.htcleo.so
- # build.prop
- sed -i \
- -e 's/ro.product.model=Nexus One/ro.product.model=HTC HD2/' \
- -e 's/ro.product.brand=google/ro.product.brand=htc_wwe/' \
- -e 's/ro.product.board=mahimahi/ro.product.board=htcleo/' \
- -e 's/-N1/-HD2ONE/' \
- $EXTRACT_PATH/system/build.prop
- ####################
- # 读取updater-script
- # 创建符号链接
- # 设置目录和文件权限
- ####################
- # updater script
- UPDATE_SCRIPT=$EXTRACT_PATH/META-INF/com/google/android/updater-script
- # create symbolic links
- SYMLINKS=`grep "symlink" $UPDATE_SCRIPT | cut -d'"' -f2`
- for SYMLINK in $SYMLINKS; do
- echo "Creating symolic links for $SYMLINK..."
- if [ "$SYMLINK" = "busybox" -o "$SYMLINK" = "iwmulticall" ]; then
- LINK_DIR='/system/xbin/'
- elif [ "$SYMLINK" = "toolbox" ]; then
- LINK_DIR='/system/bin/'
- fi
- MATCHES=`awk '/symlink\(\"'"$SYMLINK"'/,/\);/ {print}' $UPDATE_SCRIPT | \
- sed "s/symlink(\"$SYMLINK\",//g" | \
- sed 's/);//g' | \
- sed 's/"//g' | \
- sed 'N;s/\n//g' | \
- sed 's/ //g' | \
- sed 's/,/ /g' | \
- sed "s@$LINK_DIR@@g"`
- cd $EXTRACT_PATH$LINK_DIR
- for LINK in $MATCHES; do
- echo -n "Linking $SYMLINK to $LINK... "
- ln -sf $SYMLINK $LINK && echo "done"
- done
- done
- # set permissions
- grep "set_perm_recursive" $UPDATE_SCRIPT | grep -v "tmp" | grep -v "recovery" | \
- while read LINE; do
- PERM=`echo $LINE | sed 's/set_perm_recursive(//g' | sed 's/);//g' | sed 's/"//g' | sed 's/ //g'`
- USER=`echo $PERM | cut -d',' -f1`;
- GROUP=`echo $PERM | cut -d',' -f2`;
- DIR_PERM=`echo $PERM | cut -d',' -f3`;
- FILE_PERM=`echo $PERM | cut -d',' -f4`;
- TARGET=`echo $PERM | cut -d',' -f5`;
- echo -n "Setting permissions for $TARGET... "
- chown -R $USER:$GROUP $EXTRACT_PATH$TARGET
- chmod -R $DIR_PERM $EXTRACT_PATH$TARGET
- find $EXTRACT_PATH$TARGET -type f -exec chmod $FILE_PERM {} \; && echo "done"
- done
- grep "set_perm" $UPDATE_SCRIPT | grep -v "recursive" | grep -v "tmp" | grep -v "recovery" | \
- while read LINE; do
- PERM=`echo $LINE | sed 's/set_perm(//g' | sed 's/);//g' | sed 's/"//g' | sed 's/ //g'`
- USER=`echo $PERM | cut -d',' -f1`;
- GROUP=`echo $PERM | cut -d',' -f2`;
- FILE_PERM=`echo $PERM | cut -d',' -f3`;
- TARGET=`echo $PERM | cut -d',' -f4`;
- echo -n "Setting permissions for $TARGET... "
- chown $USER:$GROUP $EXTRACT_PATH$TARGET
- chmod $FILE_PERM $EXTRACT_PATH$TARGET && echo "done"
- done
- ####################
- # 这部分可以删除
- ####################
- chown 0:2000 $EXTRACT_PATH/system/xbin/cssync
- chmod 06755 $EXTRACT_PATH/system/xbin/cssync
- ####################
- # 创建yaffs2镜像文件
- ####################
- rm -f $SCRIPT_PATH/system-$BUILD_VER.img
- cd $EXTRACT_PATH && mkyaffs2image system $SCRIPT_PATH/system-$BUILD_VER.img
- chmod 644 $SCRIPT_PATH/system-$BUILD_VER.img
|