2014/05/16

復習かねて

updater-script自分なりの解釈
間違っているであろう・・・

 文字コード:なんでもいいらしい
改行コード:LF

テキストエディタあるとなにかと捗る。
最近知ったエディタ Editra

・先頭に#つけるとコメントアウト
#run_program("/sbin/busybox", "mount", "/system");
実行されない。

・文字列表示
ui_print("hogehoge");
数字、アルファベットのみ
日本語表示できない(aroma-installerでは可)

・マウント
run_program("/sbin/busybox", "mount", "/system");
run_program("/sbin/busybox", "mount", "/data");
run_program("/sbin/mount", "/system");
run_program("/sbin/mount", "/data");

rhine世代(Z1,Z1f)
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/userdate", "/data");

fusion世代(Z,A)
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/userdate", "/data");

blue世代(AX,GX)
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/System", "/system");
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/Userdate", "/data");

fuji世代(NX,acroHD)
mount("ext4", "EMMC", "/dev/block/mmcblk0p12", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p14", "/data");

・アンマウント
run_program("/sbin/busybox", "umount", "/system");
run_program("/sbin/busybox", "umount", "/data");
run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
unmount("/system");
unmount("/data");

・ディレクトリ展開
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");

・ファイル展開
package_extract_file("hoge.apk", "/system/app/hoge.apk");
package_extract_file("hoge.apk", "/data/app/hoge.apk");

・オーナー、グループ、権限
0=root
1000=system
2000=shell
r=4・・・読む
w=2・・・書く
x=1・・・実行

rw-r--r--=4+2,4,4=644
rwxr-xr-x=4+2+1,4+1,4+1=755

・ファイルのオーナー、グループ、権限設定
set_perm(0, 0, 0644, "/system/app/hoge.apk");
set_perm(1000, 1000, 0644, "/data/app/hoge.apk");
かっこの中1番目の数字・・・オーナー
かっこの中2番目の数字・・・グループ
かっこの中3番目の数字・・・権限
最後・・・ファイルPath

・ディレクトリと中身のオーナー、グループ、権限設定
set_perm_recursive(0, 0, 0755, 0644, "/system/app");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
かっこの中1番目の数字・・・オーナー
かっこの中2番目の数字・・・グループ
かっこの中3番目の数字・・・ディレクトリの権限
かっこの中4番目の数字・・・中身の権限
最後・・・ディレクトリPath

・ファイル削除
delete("/system/app/hoge.apk");
delete("/data/app/hoge.apk");
削除したいファイルのPath

・ディレクトリごと削除
delete_recursive("/system/app");
delete_recursive("/data/app");
削除したいディレクトリPath
こんな極端な事はしない。

進行状況
プログレスバー全体=1.0
show_progress(1.0, 10);
かっこの中1番目・・・プレグレスバーの割合
かっこの中2番目・・・終了予測時間
処理が10秒で終わると予測してプログレスが徐々に進行
予測時間は適当でもよい。
set_progress(0.2);
徐々にではなく、一気に0.2分進行


system領域にアプリインストール
ui_print("New app install");

show_progress(1.0, 8);

ui_print("Mount");
run_program("/sbin/busybox", "mount", "/system");

ui_print("Install");
package_extract_dir("system", "/system");

ui_print("Unmount");
run_program("/sbin/busybox", "umount", "/system");

ui_print("Finish");

外部プログラム実行
シェルスクリプトを走らす
#!/system/bin/sh
#
rm /system/app/hoge.apk
rm /data/app/hoge.apk
と書いてファイル名をrmhogeとして保存
zipに同梱
updater-scriptに書く。
package_extract_file("rmhoge", "/tmp/rmhoge");
set_perm(0, 0, 0777, "/tmp/rmhoge");
run_program("/tmp/rmhoge");

コマンドを実行
/sbinの中の何かを実行
run_program("/sbin/rm", "/system/app/hoge.apk");
この場合、ワイルドカードを使える
run_program("/sbin/rm", "/system/app/*.apk");

実行できたり出来なかったりする。
update-binaryが関係している?

0 件のコメント:

コメントを投稿