updater-script語法說明


1、mount

語法:

mount(type, location, mount_point);

說明:

type="MTD"   location="<partition>" 掛載yaffs2文件系統分區;

type="vfat"  location="/dev/block/<whatever>"  掛載設備。

例如:

 

mount("MTD", "system", "/system");掛載system分區,設置返回指針"/system”

mount("vfat", "/dev/block/mmcblk1p2", "/system");

掛載/dev/block/mmcblk1p2,返回指針"/system”

2、Unmount

語法:

unmount(mount_point);

說明:

mount_point是mount所設置產生的指針。其作用與掛載相對應,卸載分區或設備。此函數與mount配套使用。

例如:

unmount("/system");

卸載/system分區

3、Format

語法:

format(type, location);

說明:

type="MTD"  location=partition(分區),格式化location參數所代表的分區。

例如:

format("MTD", "system");格式化system分區

4、Delete

語法:

delete(<path>);

說明:

刪除文件<path>

例如:

delete("/data/zipalign.log");刪除文件/data/zipalign.log

5、delete_recursive

語法:

delete_recursive(<path>);

說明:

刪除文件夾<path>

例如:

delete_recursive("/data/dalvik-cache");刪除文件夾/data/dalvik-cache

6、show_progress

語法:

show_progress(<fraction>,<duration>);

說明:

為下面進行的程序操作顯示進度條,進度條會根據<duration>進行前進<fraction>

例如:

show_progress(0.1, 10);show_progress下面的操作可能進行10s,完成后進度條前進0.1(也就是10%)

7、package_extract_dir

語法:

package_extract_dir(package_path, destination_path);

說明:

釋放文件夾package_path至destination_path

例如:

package_extract_dir("system", "/system");釋放ROM包里system文件夾下所有文件和子文件夾至/system

8、package_extract_file

語法:

package_extract_file(package_path, destination_path);

說明:

解壓package_path文件至destination_path

例如:

package_extract_dir("my.zip", "/system");解壓ROM包里的my.zip文件至/system

9、Symlink

語法:

symlink(<target>, <src1>, <src2>,...);

說明:

建立指向target符號鏈接src1,src2,……

例如:

symlink("toolbox", "/system/bin/ps");建立指向toolbox的符號鏈接/system/bin/ps

10、set_perm

語法:

set_perm(<uid>, <gid>,<mode>, <path>);

說明:

設置<path>文件的用戶為uid,用戶組為gid,權限為mode

例如:

set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");設置文件/system/etc/dbus.conf的所有者為1002,所屬用戶組為1002,權限為:所有者有讀權限,所屬用戶組有讀權限,其他無任何權限。

11、set_perm_recursive

語法:

set_perm_recursive(<uid>,<gid>,<dir-mode>,<file-mode>,<path>);

說明:

設置文件夾和文件夾內文件的權限

例如:

set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");設置/data/app的所有者和所屬用戶組為1000,app文件夾的權限是:所有者和所屬組擁有全部權限,其他有執行權限;app文件夾下的文件權限是:所有者有讀寫權限,所屬組有讀權限,其他有讀權限。

12、ui_print

語法:

ui_print("str");

說明:

屏幕打印輸出"str"

例如:

ui_print("It's ready!");屏幕打印It’s ready!

13、run_program

語法:

run_program(<path>);

說明:

運行<path>腳本

例如:

run_program("/system/xbin/installbusybox.sh");運行installbusybox.sh腳本文件

14、write_raw_image

語法:

write_raw_image(<path>, partition);

說明:

寫入<path>至partition分區

例如:

write_raw_image("/tmp/boot.img", "boot")將yaffs2格式的boot包直接寫入boot分區

15、assert

語法:

assert(<sub1>,<sub2>,<sub3>);

說明:

如果執行sub1不返回錯誤則執行sub2,如果sub2不返回錯誤則執行sub3一次類推。

例如:

assert(package_extract_file("boot.img", "/tmp/boot.img"),
write_raw_image("/tmp/boot.img", "boot"),
delete("/tmp/boot.img"));
執行package_extract_file,如果不返回錯誤則執行write_raw_image,如果write_raw_image不出錯則執行delete

 

參考資料:

1.https://github.com/koush/android_bootable_recovery/blob/eclair/updater/install.c

2.http://wenku.baidu.com/view/49d6b7dace2f0066f53322d3.html

3.http://www.opda.com.cn/thread-266871-1-1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM