前两天在ubuntu下成功降级了HTC Desire HD并刷了CM7.1 ROM

关于Ubuntu的故事或对Ubuntu的感慨及心情
回复
头像
mymathersname
帖子: 2870
注册时间: 2008-09-18 23:40
系统: Ubuntu 15.04 x64
来自: Mars
送出感谢: 1 次
接收感谢: 1 次

前两天在ubuntu下成功降级了HTC Desire HD并刷了CM7.1 ROM

#1

帖子 mymathersname » 2011-10-15 11:55

感谢ubuntu,话说我不会在windows下使用adb等工具,见笑,完成教程奉献给需要的朋友:

此教程我不知道现在对各位有没有用,毕竟DHD现在已经不是机皇了,老爷机一台,焕发青春全靠CM7.1了,相信**作流畅非常不错的。好的开始吧(整个过程请打开手机调试,备份好您的数据)。
此教程由本人总结多方面内容汇集,感谢G2Root IRC大大们的指导。此教程分为四大板块:一、配置Linux下的adb;二、制作金卡;三、降级;四、刷ROM

一、配置Linux下的adb(以32位ubuntu为例,其他发行版用户注意前期工作,尤其是64位Linux用户。windows用户配置好的跳至第二板块)
  1. 打开终端运行:

    代码: 全选

    sudo gedit ~/.bashrc
    。滚到最下方,添加以下代码:

    代码: 全选

    export PATH=${PATH}:/user/android-sdk/tools
    (注意user处是各位Linux用户的用户名)。
  2. 虽然关闭文件,终端运行:

    代码: 全选

    sudo cp /user/android-sdk/tools/adb /usr/bin/adb
    。这里的意思是将adb拷贝到/usr/bin/下。
  3. 虽然也是终端运行:

    代码: 全选

    sudo gedit /etc/udev/rules.d/51-android.rules
    。然后出现的文本内填入下面的内容:

    代码: 全选

    SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
    。这里需要注意idVendor处不是乱填的,参考值:[font=Georgia, Utopia,]Acer: 0502 , HTC: 0bb4 , Huawei : 12d1 , LG: 1004 , Motorola: 22b8 , Samsung: 04e8, Sony Ericsson: 0fce[/font]
  4. [font=Georgia, Utopia,]弄好后重启Linux;[/font]
  5. [font=Georgia, Utopia, 'Palatino Linotype', Palatino, serif]登录后你会发现直接打开终端就能使用adb命令了(废话)。不过还有点小问题,继续解决adb devices出现和本级root权限冲突的问题。按照下面的方法解决。[/font]
  6. [font=Georgia, Utopia, 'Palatino Linotype', Palatino, serif]打开终端:cd到adb所在目录(注意,有两个目录,一个在/home/user/android-sdk/platform-tool/,另一个在/usr/bin下)下面的代码分别多这两个目录下的adb执行一次[/font]
  7. [font=Georgia, Utopia, 'Palatino Linotype', Palatino, serif]假设现在已经cd到/home/user/android-sdk/platform-tool/目录,首先执行ls -l adb查看,结果应该是:

    代码: 全选

    -rwxr-xr-x 1 user user 341694 2010-05-11 05:46 adb
    ,然后运行:

    代码: 全选

    sudo chown root:root adb
    ,这个时候再用ls -l adb查看,结果应该是:

    代码: 全选

    -rwxr-xr-x 1 root root   341694 2010-05-11 05:46 adb
    ,接着在运行:

    代码: 全选

     sudo chmod u+s adb
    ,这个时候在运行ls -l adb结果应该是:

    代码: 全选

    -rwsr-xr-x 1 root root   341694 2010-05-11 05:46 adb
    ,终端下adb是红色的。(这个是在/home/user/android-sdk/platform-tools/目录下运行,同理到/usr/bin/下对adb执行同样的操作)[/color][/font]
  8. [font=Georgia, Utopia, 'Palatino Linotype', Palatino, serif]重启Linux[/font]
[font=Georgia, Utopia, 'Palatino Linotype', Palatino, serif]二、制作金卡(两种方法)[/font]
  1. [font=Georgia, Utopia, 'Palatino Linotype', Palatino, serif]第一种方式是通过网络算号获得,这个大家应该不陌生:[/font]
    1. [font=Georgia, Utopia, 'Palatino Linotype', Palatino, serif]终端:

      代码: 全选

      adb shell
      [/color][/font]
    2. [font=Georgia, Utopia, 'Palatino Linotype', Palatino, serif]终端:

      代码: 全选

      cat /sys/class/mmc_host/mmc1/mmc1:*/cid
      ,需要注意的是mmc1这个问题,大家分别用mmc1, mmc0, mmc2都运行一次,如果只有一个跳出数字,那是最好的,但是我在降级的时候,mmc0和mmc2都跳出数字了,后来经过我验证mmc2的数字是真实的,mmc0是假的,当然后来我通过IRC请教G2Root的高手也验证了我的操作。[/color][/font]
    3. [font=Georgia, Utopia, 'Palatino Linotype', Palatino, serif]跳出的数字复制粘贴到:[/font]http://hexrev.soaa.me 。再出现的一串数字复制;
    4. 把上面复制的一串数字代码粘贴到下面的网站获取金卡:http://psas.revskills.de/?q=goldcard
    5. 从邮箱下载后备用。
  2. 第二种方式获得金卡(下载金卡制作工具,自己动手丰衣足食)
    1. 下载地址
    2. 获得工具名叫:[font=monospace] flashgc,将flashgc放到/home/user/下,开始获得cid[/font]
    3. [font=monospace]终端:

      代码: 全选

      adb push flashgc /data/local/tmp
      [/size][/font][/color]
    4. [font=monospace]终端:

      代码: 全选

      adb shell chmod 755 /data/local/tmp/flashgc
      [/size][/color][/font]
    5. [font=monospace]终端:

      代码: 全选

      adb shell /data/local/tmp/flashgc --cid /sys/class/mmc_host/mmc2/mmc2:*/cid
      [/size][/color][/font]
    6. [font=monospace]获得cid就像第一种方法那样获取金卡就好了。[/font]
  3. [font=monospace]将金卡刷到miniSD卡主引导区[/font]
    1. [font=monospace]把手机上的miniSD卡拔出来放到读卡器里,听我的没错。[/font]
    2. [font=monospace]看看自己的读卡器挂载到哪里,我的是/dev/sdb[/font]
    3. [font=monospace]把你的金卡文件放到/home/user/下,终端运行:

      代码: 全选

      sudo dd bs=512 if=/home/user/goldcard.img of=/dev/sdb
      [/size][/color][/font]
    4. [font=monospace]OK,把卡插到你的DHD里[/font]
[font=monospace]三、降级[/font]
  1. [font=monospace]下载必要的工具,工具包括了:[/font]fre3vo
    misc_version
    1.32.405.6 firmware
  2. 首先终端:

    代码: 全选

    $ adb shell cat /dev/msm_rotator
    ,注意看结果,非常重要是不是和

    代码: 全选

    /dev/msm_rotator: invalid length
    一样,一样就继续,不一样就到G2Root IRC问问问高手吧。
  3. 将下载好的三个工具包前两个解压放到/home/<user>/下,后一个不用解压,(windows下我是不知道放哪里的,因为我不会用windows配置android sdk)
  4. 终端:

    代码: 全选

    adb push fre3vo /data/local/tmp
  5. 终端:

    代码: 全选

    adb shell
  6. 终端:

    代码: 全选

    chmod 777 /data/local/tmp/fre3vo
  7. 终端:

    代码: 全选

    /data/local/tmp/fre3vo -debug -start FAA90000 -end FFFFFFFF
  8. 第7步非常关键,看看是否能得到下面的结果:

    代码: 全选

    Buffer offset:      00000000
    Buffer size:        8192
    
    Scanning region fb7b0000...
    Scanning region fb8a0000...
    Scanning region fb990000...
    Scanning region fba90000...
    Potential exploit area found at address fbb4d600:a00.
    Exploiting device...
  9. 如果可以,看11步,不行就看第10步
  10. 没有得到第8步的朋友注意,将下面的命令分别运行直到出现第8步

    代码: 全选

    $ /data/local/tmp/fre3vo -debug -start 10000000 -end 1FFFFFFF
    $ /data/local/tmp/fre3vo -debug -start 20000000 -end 2FFFFFFF
    $ /data/local/tmp/fre3vo -debug -start 30000000 -end 3FFFFFFF
    $ /data/local/tmp/fre3vo -debug -start F0000000 -end FFFFFFFF
    $ /data/local/tmp/fre3vo -debug -start E0000000 -end EFFFFFFF
    如果看见了第8步的Exploiting device就看11步,如果还是没有,到G2Root IRC问问大大们
  11. 终端:

    代码: 全选

    $ adb shell
  12. 终端:

    代码: 全选

    # exit
  13. 这个时候已经临时root了,注意看已经是#
  14. 终端:

    代码: 全选

    adb push misc_version /data/local/tmp/misc_version
  15. 终端:

    代码: 全选

    adb shell chmod 777 /data/local/tmp/misc_version
  16. 终端:

    代码: 全选

    adb shell
  17. 终端:

    代码: 全选

    /data/local/tmp/misc_version -s 1.00.000.0
  18. 看看能不能得到下面的结果:

    代码: 全选

    --set_version set. VERSION will be changed to: 1.00.000.0
    Patching and backing up partition 17...
    如果有了,恭喜,如果是:

    代码: 全选

    Error opening backup file.
    ,请确定你的miniSD卡插到手机上,并且没有挂载到你的电脑上。
  19. 没有问题的朋友继续终端:

    代码: 全选

    # sync
  20. 终端:

    代码: 全选

    # dd if=/dev/block/mmcblk0p17 bs=1 skip=160 count=10
  21. 查看下20步是不是类似下面的结果:

    代码: 全选

    1.00.000.010+0 records in
    10+0 records out
    10 bytes transferred in 0.001 secs (10000 bytes/sec)
    类似的话恭喜,继续往下看。
  22. 把之前下载的1.32.405.6 firmware放到手机的SD卡里,确保SD卡有足够空间(传的方法有adb push,和直接把卡拔下来读卡器传等等,我选择

    代码: 全选

    adb push PD98IMG.zip /sdcard/PD98IMG.zip
    ,慢点没事,稳妥最重要)。
  23. 传完以后,再次把DHD连上电脑,终端:

    代码: 全选

    adb reboot bootloade
  24. 进入的界面用音量键调整上、下,用开机按键确认操作。选择Fastboot,就可以开刷老固件了。
  25. (没有成功的请将邮件发到我的邮箱
四、刷新ROM
  1. 只要降级成功了,这里就容易不少了。
  2. 准备必要软件工具,包括:busybox[font=sans-serif], [/font]ClockworkMod Recovery[font=sans-serif], [/font]Engineering HBoot[font=sans-serif],[/font][font=sans-serif]gfree 0.7[/font][font=sans-serif], [/font]psneuter[font=sans-serif], [/font]root_psn[font=sans-serif], [/font]Superuser package
  3. 全部解压到/home/user/下(windows用户你们知道该解到哪里;
  4. 终端:

    代码: 全选

    adb push busybox /data/local/tmp/
    adb push gfree /data/local/tmp/
    adb push hboot-eng.img /data/local/tmp/
    adb push psneuter /data/local/tmp/
    adb push recovery-clockwork-5.0.2.3-ace.img /data/local/tmp/recovery.img
    adb push root_psn /data/local/tmp/
    adb push su /sdcard/
    adb push Superuser.apk /sdcard/
    adb shell
    chmod 755 /data/local/tmp/*
    /data/local/tmp/psneuter
  5. 终端:

    代码: 全选

    adb shell
    cd /data/local/tmp
    ./busybox md5sum /dev/block/mmcblk0p18
    把获得的md5复制粘贴到记事本或者gedit上,标记上(1)
  6. 终端:

    代码: 全选

    ./gfree -f -b hboot-eng.img -y recovery.img
    ./root_psn
    sync
    可能时间会长点,等会儿
  7. 终端:

    代码: 全选

    ./busybox md5sum hboot-eng.img
    ,获得的md5复制粘贴到记事本或gedit上,标记上(2)
  8. 终端:

    代码: 全选

    ./busybox md5sum /dev/block/mmcblk0p18
    ,获得的md5复制粘贴到记事本或者gedit上,标记上(3)
  9. 关键时刻到了。对比(1)(2)(3)个值,如果是(1)(3)一致,失败,说明的问题是降级没有每个部分都降级,有些部件还保留原先的级别,重来,或者到G2Root IRC问问;如果是(2)(3)一致,恭喜成功了,继续下一步吧;如果三个值都不相同,千万不要重启,赶快去G2Root IRC问问,重启就杯具了。
  10. 终端:

    代码: 全选

    reboot
  11. 开刷CM7.1,下载必要工具,包括:CyanogenMod7.1[font=sans-serif], [/font]Google Apps
  12. [font=sans-serif]传到SD卡上;[/font]
  13. [font=sans-serif]重启进入:[/font][font=sans-serif]ClockworkMod Recovery[/font]
  14. [font=sans-serif]选择:[/font][font=sans-serif]Wipe data/factory reset.,yes确定[/font]
  15. [font=sans-serif]再选择:[/font][font=sans-serif]Wipe cache partition.,yes确定[/font]
  16. [font=sans-serif]选择:[/font][font=sans-serif]Install zip from sdcard.[/font]
  17. [font=sans-serif]再选择:[/font][font=sans-serif]Choose zip from sdcard.[/font]
  18. [font=sans-serif]选择传到SD卡上的[/font][font=sans-serif]CyanogenMod update.zip[/font]
  19. [font=sans-serif]弄好后,重复16~18步,将Google Apps一样刷到手机里[/font]
  20. [font=sans-serif]弄好后,选择“+++++Go Back+++++”到主菜单选择重启设备[/font]
[font=sans-serif]终于用上了CM7.1,说实话,运行效率很高,GPS有点小bug,不用的时候关闭GPS即可,需要在打开。祝大家成功。[/font]


G2Root IRC传送门

内容详细来源请查看以下传送门:
http://www.nazriawang.com/2010/04/how-t ... buntu.html
http://www.thinkthinkdo.com/trac/projec ... structions
http://wiki.cyanogenmod.com/wiki/HTC_Ac ... yanogenMod
http://forum.xda-developers.com/showthr ... ?t=1178912
http://www.thinkthinkdo.com/trac/projec ... ja/flashgc
转移各位校内,百毒朋友,把目标转向twitter和facebook,别总看局域网的内容
其实从那么多的ubuntu发行版和fedora的各个发行版中,我们不难看出,linux的进步是惊人的,从长久的发展规律和更加深远的意义来看,linux桌面版与微软的距离在缩小,这是值得庆幸的……
ubuntu是半年还去偷情一次的初恋。fedora是一生挚爱的正室。debian是和正室同等地位的妾侍。rh/cent是用来偷窥的正室大姐姐。suse是一夜夫妻百二蚊。gentoo是有内涵的才女。arch是久闻其名不敢接触的怪叔叔。其余发行版,我是帝皇它们是屁民,无福宠幸。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 前两天在ubuntu下成功降级了HTC Desire HD并刷了CM7.1 ROM

#2

帖子 eexpress » 2011-10-15 14:50

你会被win用户bs的。
哪里搞出这么复杂的。就adb嘛。单独下载一个就是。而且,刷机应该用不到adb了。新版本的,直接可刷。
刷机,image复制到sdcard,重启就可以选择的。
● 鸣学
头像
mymathersname
帖子: 2870
注册时间: 2008-09-18 23:40
系统: Ubuntu 15.04 x64
来自: Mars
送出感谢: 1 次
接收感谢: 1 次

Re: 前两天在ubuntu下成功降级了HTC Desire HD并刷了CM7.1 ROM

#3

帖子 mymathersname » 2011-10-16 1:04

eexpress 写了:你会被win用户bs的。
哪里搞出这么复杂的。就adb嘛。单独下载一个就是。而且,刷机应该用不到adb了。新版本的,直接可刷。
刷机,image复制到sdcard,重启就可以选择的。
EE不了解我的情况,我是今年3~4月份买的,那个时候是froyo,后来从2.2升级到2.3.3以后就不能root了,一键root也无用,才沦落到这样。另外,我家的电脑只有ubuntu是32位,我在win7 ×64下不会设置adb,当然还需要htc的同步工具,那个我懒得下载,不过后来综合多方办法也算搞定了。
转移各位校内,百毒朋友,把目标转向twitter和facebook,别总看局域网的内容
其实从那么多的ubuntu发行版和fedora的各个发行版中,我们不难看出,linux的进步是惊人的,从长久的发展规律和更加深远的意义来看,linux桌面版与微软的距离在缩小,这是值得庆幸的……
ubuntu是半年还去偷情一次的初恋。fedora是一生挚爱的正室。debian是和正室同等地位的妾侍。rh/cent是用来偷窥的正室大姐姐。suse是一夜夫妻百二蚊。gentoo是有内涵的才女。arch是久闻其名不敢接触的怪叔叔。其余发行版,我是帝皇它们是屁民,无福宠幸。
回复

回到 “Ubuntu故事和感慨”