2010/04/02

日本語フォント追加用のupdate.zipを作ってみた

いちいちPCに接続してadb push~ってやらなくてもフォントを書き換えることができるように
これフォント別に作っておけばその時の気分で書き換えたりもできるね

作り方は以下


update.zipは署名がしてないと適用できないようになってるみたいです
自分が作ったzipに署名をするにはAOSPってのをビルドしないといけないらしい
正攻法だけど面倒、、
で、Android Custom Cookbookを見ると再署名という方法もあるらしい
既に署名をしてあるファイルを編集した場合は再署名が必要、ということみたい
読んでいくと署名済みのupdate-template.zipをダウンロードして
それをベースに作りましょうって流れなんだけどクリックするとNotFound、、
だめじゃん、てことで、再署名をする方法で進めるため署名済みのファイルが必要
自分はCyanogenModのサイトから署名済みのファイルを貰ってきた
多分小さいやつの方が手間が少ないと思う
例によってLinuxでの作業を前提に進めていきます

必要な物
・署名済みのzip
AutoSign
・入ってると思うけどzipとunzipコマンド

まず署名済みのzipから不要なファイルを全て取り除きます
unzip -l update.zip でzip内のファイル一覧が見れます
こんな感じ

$ unzip -l n1gapps.zip
Archive: n1gapps.zip
Length Date Time Name
-------- ---- ---- ----
3449 02-28-08 21:33 META-INF/MANIFEST.MF
3502 02-28-08 21:33 META-INF/CERT.SF
1714 02-28-08 21:33 META-INF/CERT.RSA
329 01-25-10 01:10 META-INF/com/google/android/update-script
23669 03-18-10 11:30 system/app/BugReport.apk
262562 03-18-10 11:30 system/app/CarDock.apk
178965 03-18-10 11:30 system/app/EnhancedGoogleSearchProvider.apk
986367 03-18-10 11:30 system/app/Facebook.apk
853698 03-18-10 11:30 system/app/GenieWidget.apk
596374 03-18-10 11:30 system/app/Gmail.apk
150491 03-18-10 11:30 system/app/GmailProvider.apk
264176 03-18-10 11:30 system/app/GoogleApps.apk
35653 03-18-10 11:30 system/app/GoogleBackupTransport.apk
46642 03-18-10 11:30 system/app/GoogleCheckin.apk
51414 03-18-10 11:30 system/app/GoogleContactsSyncAdapter.apk
533454 03-18-10 11:30 system/app/GoogleGoggles.apk
37624 03-18-10 11:30 system/app/GooglePartnerSetup.apk
54304 03-18-10 11:30 system/app/GoogleSettingsProvider.apk
50642 03-18-10 11:30 system/app/GoogleSubscribedFeedsProvider.apk
6229 03-18-10 11:30 system/app/HtcCopyright.apk
96941 03-18-10 11:30 system/app/LatinImeTutorial.apk
3554508 03-18-10 11:30 system/app/Maps.apk
8206 03-18-10 11:30 system/app/MarketUpdater.apk
328419 03-18-10 11:30 system/app/MediaUploader.apk
53184 03-18-10 11:30 system/app/NetworkLocation.apk
2713311 03-18-10 11:30 system/app/PassionQuickOffice.apk
575176 03-18-10 11:30 system/app/SetupWizard.apk
127378 03-18-10 11:30 system/app/Street.apk
590633 03-18-10 11:30 system/app/Talk.apk
49608 03-18-10 11:30 system/app/TalkProvider.apk
1055513 03-18-10 11:30 system/app/Vending.apk
4755559 03-18-10 11:30 system/app/VoiceSearchWithKeyboard.apk
816052 03-18-10 11:30 system/app/YouTube.apk
554077 03-18-10 11:30 system/app/com.amazon.mp3.apk
735826 03-18-10 11:30 system/app/googlevoice.apk
345596 03-18-10 11:30 system/app/gtalkservice.apk
829 02-02-10 22:22 system/etc/permissions/com.google.android.datamessaging.xml
832 02-02-10 22:22 system/etc/permissions/com.google.android.gtalkservice.xml
816 02-02-10 22:22 system/etc/permissions/com.google.android.maps.xml
28088 02-02-10 22:12 system/framework/com.google.android.gtalkservice.jar
169103 02-02-10 22:12 system/framework/com.google.android.maps.jar
9464 02-02-10 22:13 system/lib/libgtalk_jni.so
4745 02-02-10 22:23 system/lib/libinterstitial.so
-------- -------
20715122 43 files


この例の場合 META-INF/com/google/android/update-script
以外は全て不要なので以下のコマンドで削除します

$ zip -d n1gapps.zip *.apk *.so *.xml *.jar *.MF *.SF *.RSA


削除後はこうなります

$ unzip -l n1gapps.zip
Archive: n1gapps.zip
Length Date Time Name
-------- ---- ---- ----
329 01-25-10 01:10 META-INF/com/google/android/update-script
-------- -------
329 1 file


で、ここで一度zipを展開してupdate-scriptを取り出して中身を以下のように編集します

$ unzip n1gapps.zip
$ cat META-INF/com/google/android/update-script
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm 0 0 0644 SYSTEM:fonts/DroidSansJapanese.ttf
show_progress 0.1 10


次にフォントの準備をします

$ mkdir -p system/fonts
$ cp foobar.ttf system/fonts/DroidSansJapanese.ttf


これで必要なファイルは揃ったので元のzipにマージします

$ zip -r n1gapps.zip system META-INF


作業後のzipの中身はこうなります

$ unzip -l n1gapps.zip
Archive: n1gapps.zip
Length Date Time Name
-------- ---- ---- ----
127 04-02-10 22:10 META-INF/com/google/android/update-script
0 04-02-10 22:46 system/
0 04-02-10 22:46 system/fonts/
2074240 04-02-10 22:10 system/fonts/DroidSansJapanese.ttf
0 04-02-10 22:46 META-INF/
0 04-02-10 22:45 META-INF/com/
0 04-02-10 22:45 META-INF/com/google/
0 04-02-10 22:46 META-INF/com/google/android/
-------- -------
2074367 8 files


次に再署名を行います

$ unzip Auto-sign.zip
$ cd Auto-sign
$ cp ../n1gapps.zip update.zip
$ java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip update_signed.zip


update_signed.zip が生成されていれば成功です
必ずnandroidでバックアップを取ってから実行しましょう

0 件のコメント:

コメントを投稿