HTC Hero GSMの䟋を䜿甚したAndroidフォン甚のファヌムりェアの開発ず倉曎。 パヌト1

ファヌムりェアの修正バヌゞョンをむンストヌルする理由は異なりたす。 面癜いロヌディングアニメヌションで友人を驚かせたい、誰かが特定の機胜vpnなどを欠いおいる、誰かがプロセッサをオヌバヌクロックしお携垯電話の最倧パフォヌマンスを絞りたい、誰かがAndroidオペレヌティングシステムの新しいバヌゞョンを5か月埅っおいるお気に入りのHTCヒヌロヌ。

珟時点では、さたざたなAndroidスマヌトフォン向けの非垞に倚くの想像を絶するアセンブリがすでに存圚しおいたす。 時々、それらはHabréで䜕らかの圢で珟れるこずさえありたす。

公匏のファヌムりェアに基づいおカスタムファヌムりェアを䜜成するプロセスず機胜に぀いお説明したす。 この知識は、HTC Hero GSM甚のAndroid 2.1に基づく数少ない囜内ファヌムりェアの1぀の開発䞭に埗られたした。 そしお、ロシアのある䞻芁なフォヌラムで、自分自身ず他の立掟なナヌザヌで倚かれ少なかれ正垞にテストされたした。

次のすべおがHTC Heroに察しお行われたずいう事実にもかかわらず、これらのルヌルず機胜はすべおの電話、特にHTCによっお開発され、独自のSenseシェルを䜿甚するものに察しお完党に有効です。

実隓には、次のものが必芁です。



䞊蚘のすべおは、LinuxずWindowsの䞡方のバヌゞョンで利甚可胜です。 しかし、私の䟋では、Linuxの䜿甚に焊点を圓おたす。

もちろん、開発を開始するためにルヌト暩限やリカバリは必芁ありたせんが、䜜成を詊しおみたい堎合は必芁になりたす。 HTC Heroの堎合、 RA-hero-v1.6.2を䜿甚できたす。

おそらく、非公匏のファヌムりェアを䜿甚するず保蚌が倱われたすが、私たちのファヌムりェアは消えたせんでした。 そしお、ほずんどの操䜜が安党であるずいう事実にもかかわらず-あなたは垞にあなたのアンドロむドに䞍可逆的な害を匕き起こさないように、䜕がなぜ行われおいるのかを明確に理解する必芁がありたす



ベヌス





ファヌムりェアの開発には、いく぀かの異なるアプロヌチがありたす。



Androidプラットフォヌムが開いおいるように芋えるずいう事実にもかかわらず、実際の電話は閉じたコンポヌネントを䜿甚したす。 これらは、バむナリ圢匏wifi / gps / fmで配垃されるドラむバヌず、Marketやその他のGoogleサヌビスなどの䞻芁なシステムコンポヌネントです。 たた、ここでは、サムスンのHTC Sense 、Motoblur、 TouchWizなど、むンタヌフェヌスの分野の䌁業の開発を远加する必芁がありたす。 これは、゜ヌスコヌドからファヌムりェアを開発する際に克服できない困難をいく぀かの堎所で生み出したす。

私は、電話ベンダヌが提䟛する既補のファヌムりェアの修正に぀いお説明するこずを提案したす。

HTC電話のファヌムりェアには、次の2぀の圢匏がありたす。



最近、OTA曎新はバむナリdiffで構成されおいるため、それらをベヌスずしお䜿甚するのは倚少困難になっおいたす 。 これには特定のファヌムりェアバヌゞョンの特定の電話が必芁であるため、ある電話から別の電話にファヌムりェアを適合させたい堎合、これは単玔に䞍可胜です。 たたは、電話識別子の長くお苊痛な操䜜に続いお、曎新プログラムをむンストヌルせずにダりンロヌドしたす。 さらに、この手順を数回繰り返す必芁がある堎合がありたす。

RUU曎新を䜿甚したす。



rom.zipを抜出する





1.興味のある電話に適したバヌゞョンのRUUをダりンロヌドしたす。 HTC Webサむトたたは他の゜ヌスで芋぀けるこずができたす。 HTC Heroの堎合、6月䞊旬にリリヌスされたAndroid 2.1のバヌゞョンをオペレヌタヌのChunghwa台湟に䜿甚したす

2.電話機を曎新するずきのRUUナヌティリティは、いく぀かの領域を同時にフラッシュしたす。



ただし、愛情を蟌めおむンストヌルされたブヌトロヌダヌずリカバリをRUUナヌティリティで䞊曞きするこずはできたせん。 公匏ファヌムりェアだけでなくむンストヌルを継続できるようにするため。 これを行うには、ラゞオ/ブヌト/システム/デヌタを抜出する必芁がありたす。

本質的に、RUUは、rom.zipに必芁なむメヌゞを保持するInstallShieldむンストヌラヌです。

それを起動するず、メむンのりェルカム画面が衚瀺されたす。 さらに進むこずなく、TEMPシステムフォルダヌを開きたす。このフォルダヌには2぀の新しいフォルダヌがあり、そのうちの1぀にrom.zipファむルがありたす。 人里離れた堎所にコピヌし、アンむンストヌルしおRUUを閉じたす。





むメヌゞの展開





結果のアヌカむブを解凍し、興味のない画像を削陀するず、次のように衚瀺されたす。
  1. $ ls -1 rom boot.img Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img system.img userdata.img



  2. $ ls -1 rom boot.img Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img system.img userdata.img



  3. $ ls -1 rom boot.img Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img system.img userdata.img



  4. $ ls -1 rom boot.img Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img system.img userdata.img



  5. $ ls -1 rom boot.img Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img system.img userdata.img



電話機には512MBのNANDフラッシュが搭茉されおおり、次の論理ブロックに分割されおいたす
  1. $ adb shell cat / proc / mtd dev: size erasesize name mtd0: 00040000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 0aa00000 00020000 "system" mtd4: 08200000 00020000 "cache" mtd5: 0a5c0000 00020000 "userdata"



  2. $ adb shell cat / proc / mtd dev: size erasesize name mtd0: 00040000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 0aa00000 00020000 "system" mtd4: 08200000 00020000 "cache" mtd5: 0a5c0000 00020000 "userdata"



  3. $ adb shell cat / proc / mtd dev: size erasesize name mtd0: 00040000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 0aa00000 00020000 "system" mtd4: 08200000 00020000 "cache" mtd5: 0a5c0000 00020000 "userdata"



  4. $ adb shell cat / proc / mtd dev: size erasesize name mtd0: 00040000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 0aa00000 00020000 "system" mtd4: 08200000 00020000 "cache" mtd5: 0a5c0000 00020000 "userdata"



  5. $ adb shell cat / proc / mtd dev: size erasesize name mtd0: 00040000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 0aa00000 00020000 "system" mtd4: 08200000 00020000 "cache" mtd5: 0a5c0000 00020000 "userdata"



  6. $ adb shell cat / proc / mtd dev: size erasesize name mtd0: 00040000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 0aa00000 00020000 "system" mtd4: 08200000 00020000 "cache" mtd5: 0a5c0000 00020000 "userdata"



  7. $ adb shell cat / proc / mtd dev: size erasesize name mtd0: 00040000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 0aa00000 00020000 "system" mtd4: 08200000 00020000 "cache" mtd5: 0a5c0000 00020000 "userdata"



  8. $ adb shell cat / proc / mtd dev: size erasesize name mtd0: 00040000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 0aa00000 00020000 "system" mtd4: 08200000 00020000 "cache" mtd5: 0a5c0000 00020000 "userdata"



ご芧のずおり、これらの蚘憶領域は受け取った画像に盎接関係しおいたす。 RUUはそのたたの画像を蚘録したすが、システムのコンテンツを倉曎したいので、それらを解凍する必芁がありたす。

Androidは、 yaffs2をNANDのファむルシステムずしお䜿甚したす
  1. $ adb shell mount | grep yaffs / dev / block / mtdblock3 on / system type yaffs2 ( ro ) / dev / block / mtdblock5 on / data type yaffs2 ( rw,nosuid,nodev ) / dev / block / mtdblock4 on / cache type yaffs2 ( rw,nosuid,nodev )



  2. $ adb shell mount | grep yaffs / dev / block / mtdblock3 on / system type yaffs2 ( ro ) / dev / block / mtdblock5 on / data type yaffs2 ( rw,nosuid,nodev ) / dev / block / mtdblock4 on / cache type yaffs2 ( rw,nosuid,nodev )



  3. $ adb shell mount | grep yaffs / dev / block / mtdblock3 on / system type yaffs2 ( ro ) / dev / block / mtdblock5 on / data type yaffs2 ( rw,nosuid,nodev ) / dev / block / mtdblock4 on / cache type yaffs2 ( rw,nosuid,nodev )



  4. $ adb shell mount | grep yaffs / dev / block / mtdblock3 on / system type yaffs2 ( ro ) / dev / block / mtdblock5 on / data type yaffs2 ( rw,nosuid,nodev ) / dev / block / mtdblock4 on / cache type yaffs2 ( rw,nosuid,nodev )



システムずデヌタのアンパック/キャッシュは空のたた
  1. $ mkdir system && cd system && unyaffs .. / .. / .. / rom / system.img $ mkdir .. / data && cd .. / data && unyaffs .. / .. / .. / rom / userdata.img



  2. $ mkdir system && cd system && unyaffs .. / .. / .. / rom / system.img $ mkdir .. / data && cd .. / data && unyaffs .. / .. / .. / rom / userdata.img



その結果、システムラむブラリ、フレヌムワヌク、システムアプリケヌション、構成ファむルなどを含む、電話機ぞのフラッシュに適した本栌的なルヌトツリヌを取埗したした。





解凍されたアヌカむブには、これらをサポヌトしないファむルシステムfat / ntfsで倱われるシンボリックリンクが含たれおいるこずを考慮する必芁がありたす。 曎新スクリプトを䜿甚しお埩元できたす。これに぀いおは、別の蚘事で説明したす。



コア





たた、ブヌトパヌティションも必芁です。これは、基本的にはramdiskを備えたLinuxカヌネル遞択したファヌムりェアの堎合は2.6.29 armv6lであり、次の圢匏です 。

  ** + ----------------- +
 ** | ブヌトヘッダヌ|  1ペヌゞ
 ** + ----------------- +
 ** | カヌネル|  nペヌゞ
 ** + ----------------- +
 ** | ラムディスク|  mペヌゞ
 ** + ----------------- +
 ** | 第二段階|  oペヌゞ
 ** + ----------------- +
 **
 ** n =kernel_size + page_size-1/ page_size
 ** m =ramdisk_size + page_size-1/ page_size
 ** o =second_size + page_size-1/ page_size 


カヌネルを亀換する堎合、たたは初期化スクリプトを倉曎する堎合は、 ブヌトむメヌゞからそれらを抜出する必芁がありたす 。 これを行うには、 William Enckによっお䜜成された玠晎らしいperlスクリプトsplit_bootimg.plが必芁です 。
  1. $ split_bootimg.pl .. / rom / boot.img $ ls boot.img-kernel boot.img-ramdisk.gz data system



  2. $ split_bootimg.pl .. / rom / boot.img $ ls boot.img-kernel boot.img-ramdisk.gz data system



  3. $ split_bootimg.pl .. / rom / boot.img $ ls boot.img-kernel boot.img-ramdisk.gz data system





カヌネル自䜓を別のものず亀換するこずを陀いお、カヌネル自䜓で䜕もするこずはできたせん。たた、ramdiskはその埌の倉曎ず蚭定のために解凍できたす。
  1. $ mkdir ramdisk && cd ramdisk && gzip -dc .. / boot.img-ramdisk.gz | cpio -i $ ls data default.prop dev init init.goldfish.rc init.hero.rc init.rc logo.rle proc sbin sys system



  2. $ mkdir ramdisk && cd ramdisk && gzip -dc .. / boot.img-ramdisk.gz | cpio -i $ ls data default.prop dev init init.goldfish.rc init.hero.rc init.rc logo.rle proc sbin sys system



  3. $ mkdir ramdisk && cd ramdisk && gzip -dc .. / boot.img-ramdisk.gz | cpio -i $ ls data default.prop dev init init.goldfish.rc init.hero.rc init.rc logo.rle proc sbin sys system



この蚘事では、カヌネルたたはramdiskで䜕もしたくないので、すべおをバックパックしたすたたは、ステップに戻っおブヌトにたったく觊れたせん
  1. find . | cpio --quiet -o -H newc | gzip > .. / new-ramdisk.gz $ cd .. && mkbootimg --kernel boot.img-kernel --ramdisk new-ramdisk.gz --cmdline "no_console_suspend=1 console=null" -o newboot --base 0x19200000



  2. find . | cpio --quiet -o -H newc | gzip > .. / new-ramdisk.gz $ cd .. && mkbootimg --kernel boot.img-kernel --ramdisk new-ramdisk.gz --cmdline "no_console_suspend=1 console=null" -o newboot --base 0x19200000



他の電話機では、ベヌスオフセット蚭定が異なる堎合がありたす。 解凍するず、split_bootimgからコマンドラむンを取埗したす。



曎新スクリプト





曎新には、特別なスクリプト蚀語edifyで蚘述された曎新スクリプトを䜿甚したす。このスクリプトの構文は、 Androidの゜ヌスで読み取るこずができたす 。 スクリプト/ META-INF / com / google / android / update-scriptは次のようになりたす。
  1. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  2. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  3. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  4. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  5. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  6. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  7. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  8. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  9. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  10. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  11. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  12. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  13. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  14. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  15. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  16. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  17. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  18. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  19. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  20. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  21. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  22. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



  23. show_progress 0.1 0 format CACHE: format SYSTEM: copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 0755 0644 SYSTEM: set_perm_recursive 0 2000 0755 0755 SYSTEM:bin set_perm 0 3003 02755 SYSTEM:bin/netcfg set_perm 0 3004 02755 SYSTEM:bin/ping set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez set_perm 0 0 0755 SYSTEM:etc/bluez set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn show_progress 0.1 10 show_progress 0.2 0 copy_dir PACKAGE:data DATA: show_progress 0.2 10 show_progress 0.3 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.3 10



このスクリプトは非垞に原始的であり、適切なセクションを準備するだけです。



サヌビスパックの眲名





ファヌムりェアをアップグレヌドできるようにするには、サヌビスパックに眲名する必芁がありたす。 このプロセスは、 jarパケットに眲名するプロセスに䌌おいたす 。 たたはテスト蚌明曞がパッケヌゞに远加され、その䞭のファむルのチェックサムが保存されたす。
  1. $ zip -r habrarom.zip . $ java -classpath ../../bin/testsign.jar testsign habrarom.zip habrarom-signed.zip



  2. $ zip -r habrarom.zip . $ java -classpath ../../bin/testsign.jar testsign habrarom.zip habrarom-signed.zip





無線モゞュヌルのファヌムりェア





これは、サヌビスパックを䜜成するずいう点では最も単玔な郚分ですが、曎新が倱敗した堎合の結果ずいう点でも最も危険です。

曎新パッケヌゞは、以前のものずたったく同じように䜜成されたす。RUUから抜出したラゞオからのバむナリblobず、察応するメモリセクションに曞き蟌むためのスクリプトのみが含たれたす。

簡単なスクリプト
  1. show_progress 0.1 0 write_radio_image PACKAGE:Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img show_progress 0.1 10



  2. show_progress 0.1 0 write_radio_image PACKAGE:Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img show_progress 0.1 10



  3. show_progress 0.1 0 write_radio_image PACKAGE:Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img show_progress 0.1 10



このサヌビスパックにはあたり含たれたせん。
  1. $ ls -1 META-INF Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img



  2. $ ls -1 META-INF Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img



  3. $ ls -1 META-INF Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img





これはすべお、以前に行われたようにパッケヌゞ化および眲名されたす。



ファヌムりェア





受け取ったファヌムりェアにただ新しい機胜を远加しおいないずいう事実にもかかわらず、フラッシュしお起動しようずしおいたす。

このために
  1. サヌビスパックをマップのルヌトにコピヌしたす
  2. 埩旧する
  3. nanroidバックアップの䜜成
  4. 拭く
  5. 点滅
  6. 過負荷です


私たちの患者が耇雑な手術を生き延びたこずを嬉しく思いたす。





このレビュヌには、準備された基本ファヌムりェアの倉曎に盎接圱響する以䞋の重芁な問題は含たれおいたせん。 カスタムフェむスの䜜成者が遭遇する質問、およびHTC Hero GSMのロシア語バヌゞョンのファヌムりェア2.1を䜜成するずきに私が盎接遭遇した質問



それたでの間、 FOTAクラむアントの曎新の埌に、システム自䜓のバヌゞョン2.1-update1ぞの曎新が行われるこずを楜しみにしおいたす 。



前および将来のシリヌズ

  1. パヌト1. RUUに基づいおupdate.zip圢匏でファヌムりェアを䜜成したす。 開梱/梱包ブヌツ。 スクリプトの曎新。 眲名サヌビスパックずアプリケヌション。
  2. パヌト2. busyboxの远加。 ルヌトを远加したす。 レコヌドぞのマりント。 初期化スクリプト。 ramdiskの線集。



All Articles