Monday, March 22, 2010

How to create signed update.zip

カスタムROMを導入してシステム全体をアップデートする度にcacerts.bksやフォントをpushするのが面倒なので自前のupdate.zipを作っておいて、リカバリーモードで一緒に更新することにした。

署名付きzipじゃないとあかんぽいので、下記の手順を踏む。

なにはともあれAOSPビルドする。
部分的にビルドするのでもいいのかもしれないけど。

適切にディレクトリを構成する。
$ mkdir ~/update
$ cd ~/update
$ mkdir -p system
$ mkdir -p META-INF/com/google/android

必要なファイル(自前で更新するファイル)を放り込む。
 $ find .
.
./META-INF
./META-INF/com
./META-INF/com/google
./META-INF/com/google/android
./system
./system/fonts
./system/fonts/DroidSansJapanese.ttf
./system/etc
./system/etc/security
./system/etc/security/cacerts.bks

META-INF/com/google/android/update-script ファイルを書く。
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm 0 0 0644 SYSTEM:etc/security/cacerts.bks
set_perm 0 0 0644 SYSTEM:fonts/DroidSansJapanese.ttf
show_progress 0.1 10

zipる。
$ zip -r ~/update.zip system META-INF

署名する。
$ java -jar ~/android-source/out/host/linux-x86/framework/signapk.jar \
~/android-source/build/target/product/security/testkey.x509.pem \
~/android-source/build/target/product/security/testkey.pk8 \
~/update.zip ~/update-signed.zip

update-singed.zipをsdcardにいれといてカスタムROM導入後にリカバリで適用してやれば終わり。
一度zip作っておけばあとはリカバリモードだけで完結するので楽チン。

No comments: