ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

顯示具有 hero 標籤的文章。 顯示所有文章
顯示具有 hero 標籤的文章。 顯示所有文章

2013年10月29日 星期二

Som Hero ROMS ..

沒有中文的安裝 cime apk for hero 就可以有中文輸入法。


ref: All roms, kernels, recoveries in one place (UPDATED 19.9.2012)
另外 Cht_hami_a2sd_20120324_signed.zip 這個好像是OTA 修改版,有 root,但是只有 2.1

  • Rose_V6 : 2.3.3 w sense ,簡體中文,流暢。但是沒有 logcat
  • SalsaSense 4.0 : 開很久,第一次化開又重開很久,2.3.3, sense 4.0, 沒中文。流暢度還好。 logcat OK

2013年9月17日 星期二

build kernel for hero - flykernel

很好心的人..
[Kernel] Flykernel-13 "Back from the Grave"
把他的 kernel source 放在 github,還寫了 howto.. https://github.com/erasmux/hero-2.6.29-flykernel/wiki/HOWTO:-Build-the-kernel

以下都是 copy 的...
拿 source code:
git clone git://github.com/erasmux/hero-2.6.29-flykernel.git 

config..
make ARCH=arm hero_defconfig

build..
make -j8 ARCH=arm CROSS_COMPILE=PATH_TO_TOOLCHAIN/bin/arm-none-eabi-

build 好的 zipped kernel image 會在 arch/arm/boot/zImage


要作出可以燒進 ROM 的 image 有一點麻煩...
他說要參考.. HOWTO: Unpack, Edit, and Re-Pack Boot Images
大概就是 ... 從別人的 update image 中抽出 root ramdisk。
再把他和你 build 好的 kernel 合併在一起。

mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel your-kernel-file --ramdisk newramdisk.cpio.gz -o mynewimage.img 

他的 ref:

Hero, a lot of roms. (again).

因為需要 wifi proxy support,所以又開始刷 ROM.
先是最多人用的 .. [ROM]Elelinux-7.2-Hero-v3.9 Android 2.3.7 (2012-07-03)]
gapp 也包含在裡面,燒完 OK..
開進去是中文(!!),但是 Wifi 沒有 proxy support..

所以換 這個:[ROM] ICS 4.0.3 With working camera [UPDATE 01.05.2012]

有點頓,Wifi 有 proxy 設定,但是設定後好像不會動。Browser 還是出不去。


另外有兩個 ROM (CM10, MIUI) 都刷不進去,說是 signature incorrect 問題。
所以只好 改 CWM。

回想一下 hero 的 recovery 是要在系統中用 flash_image 來燒。

所以 follow : http://www.stefan-seelmann.de/wiki/freeyourandroid
download recovery image

用 adb push 到 /mnt/sdcard
在用 flash_image 來燒..
flash_image recovery /mnt/sdcard/recovery-clockwork-2.5.0.70-hero.img


... 慘了...忘了先燒回原廠 ROM,,, 因為 RA 的 backup, CWM 不能 restore...

2013年1月31日 星期四

build CM

這一篇 Build from hero 是官方的 CM build instrunction (好像是自動產生的)。


repo sync 完成後,要設定 product 相關的設定。
rom-manager 好像是內鍵的,所以要先download apk.. vendor/cyanogen/get-rommanager.sh
然後一樣: . build/envsetup.sh lunch cm_hero-userdebug 這樣, script 會去 cyanogen 的 github download 該 target product 需要的 device/vendor/ 下的檔案。
完成 lunch 的動作。

接下來作 lunch 時,發生錯誤。
ref: http://csidiropoulos.wordpress.com/2012/11/06/devicehtcaceace-mk-does-not-exist-stop-cyanogenmod/
修改 vendor/cyanogen/products/AndroidProducts.mk
只留下 hero 這個 mk 就可以。
其他行都刪掉。

-- 還有,是 lunch full_hero-userdebug
奇怪,要是用 lunch cyanogen_hero-userdebug 的話,就沒有 error 了呀。也不用改 AndroidProducts.mk


最後的 make hero 也不行,沒有 hero 這個 target。
要用 make otapackage
.. 當然,還是 fail...


改 checkout release version - gb-release-7.2

到 .repo/manifest 下,用 git diff origin/gb-release-7.2 看一下。
果然, 一堆 devices/htc/ 下的裝置目錄,在 gb-release-7.2 都有被加入。
所以 作 lunch 時,不會有 htc_ace.mk 找不到的問題。

看了一下 manifest 的 git log ,發現這個:
commit d33c1afc194cfc402f4e5edc37dbef1bafea35df
Author: Ricardo Cerqueira 
Date:   Sat Oct 6 04:01:53 2012 +0100

    manifest: Remove repositories serviceable by roomservice
    
    Let's be nice to github (and avoid getting locked out again).
    CM7 has supported roomservice for months, there's no reason for its
    configuration to be different from CM9 and above.
    There's no need to pull these 88 repositories when bootstrapping
    CM7. It's over 6GB worth of data that's useless when you want to
    build a single device.
    
    Change-Id: I75cad7a78d41c2abe8db6f3443fa0efae8a50b32


應該就是這個,2012, 10 月,開始加入 roomservice,所以不必把所有的 device configuration file 都拉下來。
而且順便知道,CM9 沒有這個問題 -- 因為 CM9 早就 support roomservice

所以直接 init -b gb-release-7.2 ,然後 . build/envsetup 之後,lunch 就會出現一堆product可以選

.. 結果,使用 branch gb-release-7.2 也一樣,lunch full_hero-userdebug 有 error: build/core/product_config.mk:196: *** _nic.PRODUCTS.[[vendor/cyanogen/products/cyanogen_mecha.mk]]: "device/htc/mecha/device_mecha.mk" does not exist. Stop. Device hero not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod). Found repository: android_device_htc_hero Syncing repository to retrieve project. Traceback (most recent call last): File "/home/charles-chang/gb-release-7.2/.repo/repo/main.py", line 408, in _Main(sys.argv[1:]) File "/home/charles-chang/gb-release-7.2/.repo/repo/main.py", line 388, in _Main result = repo._Run(argv) or 0 File "/home/charles-chang/gb-release-7.2/.repo/repo/main.py", line 122, in _Run copts, cargs = cmd.OptionParser.parse_args(argv) File "/home/charles-chang/gb-release-7.2/.repo/repo/command.py", line 45, in OptionParser self._Options(self._optparse) File "/home/charles-chang/gb-release-7.2/.repo/repo/subcmds/sync.py", line 147, in _Options self.jobs = self.manifest.default.sync_j File "/home/charles-chang/gb-release-7.2/.repo/repo/manifest_xml.py", line 256, in default self._Load() File "/home/charles-chang/gb-release-7.2/.repo/repo/manifest_xml.py", line 304, in _Load self._ParseManifest(nodes) File "/home/charles-chang/gb-release-7.2/.repo/repo/manifest_xml.py", line 389, in _ParseManifest (project.name, self.manifestFile)) error.ManifestParseError: duplicate project CyanogenMod/android_device_htc_hero in /home/charles-chang/gb-release-7.2/.repo/manifest.xml Done! build/core/product_config.mk:196: *** _nic.PRODUCTS.[[vendor/cyanogen/products/cyanogen_mecha.mk]]: "device/htc/mecha/device_mecha.mk" does not exist. Stop. 缺 cyanogen_mecha.mk,只好去把她從 AndroidProduct.mk 刪掉..

..結果還是有一堆: diff --git a/products/AndroidProducts.mk b/products/AndroidProducts.mk index 106dcbc..5425161 100644 --- a/products/AndroidProducts.mk +++ b/products/AndroidProducts.mk @@ -36,7 +36,6 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/cyanogen_leo.mk \ $(LOCAL_DIR)/cyanogen_liberty.mk \ $(LOCAL_DIR)/cyanogen_mango.mk \ - $(LOCAL_DIR)/cyanogen_mecha.mk \ $(LOCAL_DIR)/cyanogen_mesmerizemtd.mk \ $(LOCAL_DIR)/cyanogen_mimmi.mk \ $(LOCAL_DIR)/cyanogen_morrison.mk \ @@ -55,9 +54,6 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/cyanogen_sholes.mk \ $(LOCAL_DIR)/cyanogen_showcasemtd.mk \ $(LOCAL_DIR)/cyanogen_smb_a1002.mk \ - $(LOCAL_DIR)/cyanogen_smb_a1004.mk \ - $(LOCAL_DIR)/cyanogen_smb_a1011.mk \ - $(LOCAL_DIR)/cyanogen_smb_b9701.mk \ $(LOCAL_DIR)/cyanogen_smultron.mk \ $(LOCAL_DIR)/cyanogen_speedy.mk \ $(LOCAL_DIR)/cyanogen_supersonic.mk \

這樣改以後,lunch 選完就不會有 error 了。

2013年1月29日 星期二

bootloader , recovery images and ROM

很神奇的是 bootloader 竟然可以決定 nand /eMMC 各 partition 的 access 權限。
所以才會又 S-ON/S-OFF 的選項。

S-ON/S-OFF 的功能好像只有official 的image 在參考,
recovery image 並沒有用到,
還有,燒了非官方的 image,也不會依照 S-ON/S-OFF 的內容。
---- 作辛酸的?


至於系統的燒錄/更新,都是靠 recovery image 來作的。
這原來是用來更新/恢復 系統的工具。

原廠的 recovery 工具功能太簡單,有些還有作image 簽章 檢查。
所以 燒rom 的 hacker,就自己做了 功能強大的 recovery image。

recovey image 的開發和 OS 的開發好像是分開的人/組織。
當然也有 OS 開發 team 同時也提供 recovery image 的。

  • CMw -- 這個好像蠻popular 的,有 apk : ROM Manager 配合。
  • RA-Recovery -- 這個野蠻多人用,好像開發得比較早。
  • CM -- 就是有名的 CyanogenMode ,support 的 device 沒那麼多。 有 source
  • TWRP -- TeamWin,基於 aosp 的 OS 和 recovery,device support 也沒那麼多,有 source


Custom Recovery Image 的安裝,就是把 image file copy 到 recovery partition。
所以要有對 flash/nand/emmc partition read write 的權限。

所以有不同作法:
  • root 後,安裝 terminal progam,放入 flash_image 這個 tool,用 flash_image 把 image 寫到 recovery partition
  • 利用 bootloader 或是原廠 recovery image 的 fastboot cmd,把 image 寫入 recovery partition


果然,S-ON 的情況下,fastboot 不允許 run external boot image
否則就每次用 boot command run recovery image 就好,連 recovery partition 都不用燒了。

所以 只好 用 root 後,從 termianl 執行 flash_image,把 recovery 燒到 partition。


把 RA recovery image 燒到 flash 中的步驟:

用 UniversalRoot 取得 root
就"設法"裝這個 apk 就是 ...
remounte /sytem 為 rw #mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
把 flash_image copy 到 /system/bin 中
#dd if=/sdcard/flash_image of=/system/bin/flash_image
可以執行 flash_image 把 RA-Recovery 燒到 recovery partition 了 #flash_image recovery /sdcard/recovery.img
完成!

關機,按 HOME + Power 重新開機,就會進入 RA-Recovery
  • 網路上另一種方法是用 flashrec.apk ,這program 的 source code 在 google code 中,可以看到,也是用 flash_image 來作,所以對新版 ROM 無效。

.. 應該要加上 flash_image not found 和 remote not allowed 這兩個關鍵字..

OK., 接著可以 build CM7 了..


backup & restore

之後每次開機按 HOME+Power 就可以開進 recovery image。
裡面有 backup/restore 選項。

其中有兩項有點混淆:
  • nand
  • bart

nand 跟 bart 的差別在 bart 把 ext partition 也一起被份了,
ext partition 好像是用 app2SD 時,而外開的一個 partition。
所以沒用的人不需要用 bart

ref: http://guide.hiapk.com/news/10162012/021642164.shtml

2012年4月16日 星期一

my hero mantain log - 恢復 official 2.1

因為改了 font,竟然導致 開機 fail -- 開到 hTC ...就停了

這時候連上 PC,沒有動作,裝了 HTC Sync 後才有 (猜是 usb pid/vid)。

然後值行 download 下來的 RUU.exe ,竟然可以動 (猜是 HTC sync 有連上 adb)。
RUU 執行,說明是 .4,要升(?) 級到 .1 (?),回答OK後,自己進入 HBOOT,
update ok 後,自動重新開機,回到官方 2.1。

開機都開完後,關機,
按著 HOME Key 開機,結果出現 紅色三角。
接著按 Volume UP + Power,嘗試進入 recovery,...
出現:
Android ststem recovery < 2e >
follow instruction,reboot system。

插入 SIM card 開機,enable 3G data --- 出現 OTA, 升級到 .4 的通知。

確認,自己 reboot,然後是 progress 圈圈....
等一陣子後,就是.4 版了。


之後 SD card 正常使用,Google Acccount 設定後,Market 可以用,install facebook, google+ 都 OK。
google map 與定位也 OK (但是功能和畫面不太一樣)。

應該算是正常使用了。

所以接下來就是作 backup. 和 root(?).



開機時按著 "HOME" 就是進入 Recovery Mode。
bootloader load 會是 recovery image。

上面的紅色三角+驚嘆號 就是 HTC 官方的 recovery image。
所以手機要先root,然後把 燒rom 用的 recovery image copy 到 recovery partition,
覆蓋掉原來的

手機mantain : 一些 hero rom 與更新bookmark

官方:

很有趣,從 RUU 中找出 rom : http://www.diypda.com/forum.php?mod=viewthread&tid=140722

01 的,官方2.1rom, recook: http://www.mobile01.com/topicdetail.php?f=566&t=1693403&p=103

01 上RUU (不知道是不是最新) : http://www.mobile01.com/topicdetail.php?f=566&t=1674071

非官方, 2.2, 2.3:

原始 XDA 大概是在: http://forum.xda-developers.com/showthread.php?t=932377

elelinux 中文版說明: http://gphonefans.net/thread-28341-1-1.html

同樣是 elelinux,大陸人的說明 (有點亂,但是有一點評側) : http://bbs.hiapk.com/thread-1864963-1-1.html

中文輸入法: http://devilmen.blogspot.com/2011/01/cedime-for-android.html

01 的,結果好像都不怎麼 OK : http://www.mobile01.com/topicdetail.php?f=566&t=2234395&p=1

01 的另一篇,教刷機:http://www.mobile01.com/topicdetail.php?f=566&t=1989203&p=1

xda 上的另一個 rom - zero: http://forum.xda-developers.com/showthread.php?t=1406532&page=11

兩種 rom : http://blog.xuite.net/diecorroder/withclaire/39127279-%5BHERO+ROM%5D+HERO+2.2+%E6%95%88%E8%83%BD453%E5%88%86!+Tegro+2.1+%2F+Floyo+1.01+%2F+FROYO_2.2_v2.1+3%E6%AC%BEROM%E7%B0%A1%E5%96%AE%E6%B8%AC%E8%A9%A6!+

01 的,2.2 (3?) : http://www.mobile01.com/topicdetail.php?f=566&t=2141479&p=1

刷 elelinux 後的感想:http://synn-solis.blogspot.com/2010/11/android-hero.html

標籤

網誌存檔