2012年8月12日日曜日

iWnn install用のupdate.zipを作る (part2)

さて、前回全くうまくいかなかった本件ですが、
  • エラーメッセージがMETA-INFフォルダすら含んでいないzipファイルを用いた場合とは異なる
  • スクリプトの前半のただメッセージを表示する部分すら実行されない
ということからupdate-binaryがNexus7ではちゃんと動かないのではないかと考えました。プログラミングは初歩の初歩しかできない私としてはここでお手上げかなぁと思っていましたが、今朝のParanoid Androidの修正ファイルでひらめきました。このファイルの中に必要なファイルは一式揃っている。間違いなくNexus7で動作するスクリプトです。必要最小限のファイルしか入っていない方が良いので敢えて最新版ではなく1.95aの修正ファイルであるpa_grouper-1.95-BUGFIX1.zipをひな型にすることにしました。このファイルには/system/app/SystemUI.pakしか追加ファイルが含まれていないのでわかりやすいです。zipファイルを作業用フォルダに展開。もとから入ってるSystenUI.apkはもちろん削除。展開先\META-INF\com\google\android\updater-scriptを編集。windowsについてるnotepadは改行コードの関係でダメなのでTera padを使っています。

ui_print("Copy additional files for iWnn");
ui_print("Install Titanium Backup");
ui_print("Mounting system...");
run_program("/sbin/busybox", "mount", "/system");
run_program("/sbin/busybox", "mount", "/cache");
run_program("/sbin/busybox", "mount", "/data");
show_progress(1, 15);
ui_print("Copying files...");
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
set_perm_recursive(0, 0, 0755, 0644, "/system/lib");
set_perm(0, 0, 0644, "/data/app/com.keramidas.TitaniumBackup-2.apk");
set_perm_recursive(0, 0, 0755, 0755, "/data/data/com.keramidas.TitaniumBackup");
set_perm_recursive(0, 0, 0755, 0755, "/data/data/com.keramidas.TitaniumBackupPro");
ui_print("Unmounting system...");
run_program("/sbin/busybox", "umount", "/system");
run_program("/sbin/busybox", "umount", "/cache");
run_program("/sbin/busybox", "umount", "/data");
ui_print("Finished");

あとはMETE-INFと同じ場所にsystemフォルダとdataフォルダを作成、system/libにiWnnの必要ファイルをコピー、data/appにTitanium Backupのapkをdata/dataにデータフォルダをコピーします。最後にこれら全部を一つのzipファイルにして完成。

今度はCWMリカバリから無事インストールできました。Titanium Backupが起動しないで強制終了したのでキャッシュ・データを消去したところ動作しました。ひょっとしたら/data/dataはコピーしない方がいいのかもしれません。あとはTitanium BackupからiWnnその他のアプリをリストアして終了。

動作したのでこれ以上は調べていませんがset_permコマンドの後の最初の二つの数字の意味がわかりません。update.zipの説明の多くでは0になっていますが、最初に参考にしたサイトでは1000となっています。Paranoid AndroidのROM本体のscriptでは様々な値が使い分けられています。もしかしたら今回のケースも0以外を指定した方がよいのかもしれません。まあ、動いたから今回はこれで終了。

2 件のコメント:

  1. iWnnのファイルって何が必要ですか?
    調べてみましたが分からなかったので教えてください。

    返信削除
  2. Nexus7にカスタムROM導入時の覚書という投稿を読んでいただければわかるかと思います。

    返信削除