分享

基于CyanogenMod7的ROM制作方法

 adahua 2011-10-30
准备工作
  • 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刷机包制作
这个最简单,复制粘贴就可以了。
  1. 解压CM7官方升级包,得到META-INF,system两个文件夹和boot.img一个文件。
  2. 解压HD2补丁文件,得到update文件夹。
  3. 把内核文件tun.ko,bcm4329.ko等放到update\lib\modules目录下。或者有替他要替换的文件也可以放到update目录下。
  4. 新建boot文件夹,把zImage,initrd.gz放到boot目录下。
  5. 下载 updater-script.zip (2 K) 下载次数:1 ,解压后替换位于META-INF\com\google\android目录下的相应文件。
  6. 重新打包,压缩成zip文件即可。

如果刷机后遇到问题,请参考下面的镜像制作方法调整个别系统文件。

线刷(SD引号)系统镜像制作
准备一个linux机器(或者虚拟机),以下操作均在linux环境下进行。
  1. 新建一个文件夹,名字随便,假设为cm7。
  2. 把CM7官方升级包放到cm7目录下。
  3. 把HD2补丁文件解压放到cm7目录下。
  4. 把内核文件tun.ko,bcm4329.ko等放到update\lib\modules目录下。或者有替他要替换的文件也可以放到update目录下。
  5. 下载 mksystem.zip (2 K) 下载次数:1
    ,解压后放到cm7目录下。使用root用户运行mksystem.sh,即可生成system.img。

说明
  • 默认生成的yaffs2镜像,如果需要ext2或squashfs镜像,请自行Google方法。
  • boot.img做法就不说了。


正文到此结束,遇到问题请自行Google解决,此帖不会再更新。
下面贴的就是mksystem.sh,希望对大家有帮助。

  1. #!/bin/sh

  2. ####################
  3. # 获取当前路径
  4. ####################
  5. SCRIPT_PATH=`dirname $(readlink -f $0)`
  6. EXTRACT_PATH=$SCRIPT_PATH/extract

  7. ####################
  8. # 获取CM升级包名称
  9. # 解压缩CM升级包
  10. ####################
  11. BUILD=`ls $SCRIPT_PATH/*.zip | tail -1`
  12. BUILD_VER=`echo $BUILD | cut -d'-' -f2 | sed 's/.zip//'`
  13. unzip $SCRIPT_PATH/$BUILD -d $EXTRACT_PATH/

  14. ####################
  15. # 删除不需要的文件
  16. ####################
  17. # app
  18. rm $EXTRACT_PATH/system/app/CMWallpapers.apk
  19. rm $EXTRACT_PATH/system/app/Provision.apk
  20. rm $EXTRACT_PATH/system/app/RomManager.apk
  21. # etc
  22. rm $EXTRACT_PATH/system/etc/init.d/05mountsd
  23. rm $EXTRACT_PATH/system/etc/firmware/default*.acdb
  24. # lib
  25. rm $EXTRACT_PATH/system/lib/hw/gps.goldfish.so
  26. rm $EXTRACT_PATH/system/lib/hw/gps.mahimahi.so
  27. rm $EXTRACT_PATH/system/lib/hw/sensors.goldfish.so
  28. rm $EXTRACT_PATH/system/lib/hw/lights.mahimahi.so
  29. # tts
  30. rm $EXTRACT_PATH/system/tts/lang_pico/de-DE_gl0_sg.bin
  31. rm $EXTRACT_PATH/system/tts/lang_pico/de-DE_ta.bin
  32. rm $EXTRACT_PATH/system/tts/lang_pico/en-GB_kh0_sg.bin
  33. rm $EXTRACT_PATH/system/tts/lang_pico/en-GB_ta.bin
  34. rm $EXTRACT_PATH/system/tts/lang_pico/es-ES_ta.bin
  35. rm $EXTRACT_PATH/system/tts/lang_pico/es-ES_zl0_sg.bin
  36. rm $EXTRACT_PATH/system/tts/lang_pico/fr-FR_nk0_sg.bin
  37. rm $EXTRACT_PATH/system/tts/lang_pico/fr-FR_ta.bin
  38. rm $EXTRACT_PATH/system/tts/lang_pico/it-IT_cm0_sg.bin
  39. rm $EXTRACT_PATH/system/tts/lang_pico/it-IT_ta.bin
  40. # usr
  41. rm $EXTRACT_PATH/system/usr/keylayout/mahimahi-keypad.kl
  42. rm $EXTRACT_PATH/system/usr/keychars/mahimahi-keypad.kcm.bin

  43. ####################
  44. # 替换HD2相关文件
  45. # 修改build.prop,使其适用于HD2
  46. ####################
  47. cp -a $SCRIPT_PATH/update/* $EXTRACT_PATH/system
  48. mv $EXTRACT_PATH/system/lib/hw/sensors.mahimahi.so $EXTRACT_PATH/system/lib/hw/sensors.htcleo.so
  49. # build.prop
  50. sed -i \
  51. -e 's/ro.product.model=Nexus One/ro.product.model=HTC HD2/' \
  52. -e 's/ro.product.brand=google/ro.product.brand=htc_wwe/' \
  53. -e 's/ro.product.board=mahimahi/ro.product.board=htcleo/' \
  54. -e 's/-N1/-HD2ONE/' \
  55. $EXTRACT_PATH/system/build.prop

  56. ####################
  57. # 读取updater-script
  58. # 创建符号链接
  59. # 设置目录和文件权限
  60. ####################
  61. # updater script
  62. UPDATE_SCRIPT=$EXTRACT_PATH/META-INF/com/google/android/updater-script
  63. # create symbolic links
  64. SYMLINKS=`grep "symlink" $UPDATE_SCRIPT | cut -d'"' -f2`
  65. for SYMLINK in $SYMLINKS; do
  66. echo "Creating symolic links for $SYMLINK..."
  67. if [ "$SYMLINK" = "busybox" -o "$SYMLINK" = "iwmulticall" ]; then
  68. LINK_DIR='/system/xbin/'
  69. elif [ "$SYMLINK" = "toolbox" ]; then
  70. LINK_DIR='/system/bin/'
  71. fi
  72. MATCHES=`awk '/symlink\(\"'"$SYMLINK"'/,/\);/ {print}' $UPDATE_SCRIPT | \
  73. sed "s/symlink(\"$SYMLINK\",//g" | \
  74. sed 's/);//g' | \
  75. sed 's/"//g' | \
  76. sed 'N;s/\n//g' | \
  77. sed 's/ //g' | \
  78. sed 's/,/ /g' | \
  79. sed "s@$LINK_DIR@@g"`
  80. cd $EXTRACT_PATH$LINK_DIR
  81. for LINK in $MATCHES; do
  82. echo -n "Linking $SYMLINK to $LINK... "
  83. ln -sf $SYMLINK $LINK && echo "done"
  84. done
  85. done
  86. # set permissions
  87. grep "set_perm_recursive" $UPDATE_SCRIPT | grep -v "tmp" | grep -v "recovery" | \
  88. while read LINE; do
  89. PERM=`echo $LINE | sed 's/set_perm_recursive(//g' | sed 's/);//g' | sed 's/"//g' | sed 's/ //g'`
  90. USER=`echo $PERM | cut -d',' -f1`;
  91. GROUP=`echo $PERM | cut -d',' -f2`;
  92. DIR_PERM=`echo $PERM | cut -d',' -f3`;
  93. FILE_PERM=`echo $PERM | cut -d',' -f4`;
  94. TARGET=`echo $PERM | cut -d',' -f5`;
  95. echo -n "Setting permissions for $TARGET... "
  96. chown -R $USER:$GROUP $EXTRACT_PATH$TARGET
  97. chmod -R $DIR_PERM $EXTRACT_PATH$TARGET
  98. find $EXTRACT_PATH$TARGET -type f -exec chmod $FILE_PERM {} \; && echo "done"
  99. done
  100. grep "set_perm" $UPDATE_SCRIPT | grep -v "recursive" | grep -v "tmp" | grep -v "recovery" | \
  101. while read LINE; do
  102. PERM=`echo $LINE | sed 's/set_perm(//g' | sed 's/);//g' | sed 's/"//g' | sed 's/ //g'`
  103. USER=`echo $PERM | cut -d',' -f1`;
  104. GROUP=`echo $PERM | cut -d',' -f2`;
  105. FILE_PERM=`echo $PERM | cut -d',' -f3`;
  106. TARGET=`echo $PERM | cut -d',' -f4`;
  107. echo -n "Setting permissions for $TARGET... "
  108. chown $USER:$GROUP $EXTRACT_PATH$TARGET
  109. chmod $FILE_PERM $EXTRACT_PATH$TARGET && echo "done"
  110. done

  111. ####################
  112. # 这部分可以删除
  113. ####################
  114. chown 0:2000 $EXTRACT_PATH/system/xbin/cssync
  115. chmod 06755 $EXTRACT_PATH/system/xbin/cssync

  116. ####################
  117. # 创建yaffs2镜像文件
  118. ####################
  119. rm -f $SCRIPT_PATH/system-$BUILD_VER.img
  120. cd $EXTRACT_PATH && mkyaffs2image system $SCRIPT_PATH/system-$BUILD_VER.img
  121. chmod 644 $SCRIPT_PATH/system-$BUILD_VER.img

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多