Edify語法簡介_Updater-Script_第1頁
Edify語法簡介_Updater-Script_第2頁
Edify語法簡介_Updater-Script_第3頁
Edify語法簡介_Updater-Script_第4頁
Edify語法簡介_Updater-Script_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、讀書破萬卷 下筆如有神Edify 語法簡介(Updater-Script)翻譯:Kawvin這是Android系統(tǒng)來運行 updater-scripts 的Edify語言的基本介紹。大部分的Edify命名都是函數(shù),當(dāng)調(diào)用這些函數(shù)結(jié)束的時候,會返回數(shù)據(jù)給腳本。當(dāng)然,你也可以使用這些函數(shù)的返 回值來確認(rèn)成功與否,例如:ifelse(mount("yaffs2", "MTD", "system", "/system") = "system", ui_print("Successfully M

2、ounted!"), ui_print("MountFailed!");這個命令會嘗試去掛載命名為"system"的"MTD分區(qū)到“/system”。如果掛載成功,腳本會顯示"Successfully Mounted!",否則會顯示"Mount Failed!?!爆F(xiàn)面是用在 Edify的Updater-script中的函數(shù)例子:函數(shù)名稱:mount函數(shù)語法:mount(fs_type, partition_type, location, mount_point)參數(shù)t¥解:fs_type&quo

3、t;yaffs2"或"ext4"partition_type"MTD"或"EMMC"location 分區(qū)(partition) 或驅(qū)動器(device)mount_poin 掛載文件系統(tǒng)的目標(biāo)文件夾(target folder to mount FS)作用解釋:掛載一個文件系統(tǒng)到指定的掛載點返 回值:掛載成功則返回掛載點,失敗返回null函數(shù)示例:mount("MTD", "system", "/system");掛載 system 分區(qū),設(shè)置返回指針 "

4、;/system ”mount("vfat", "/dev/block/mmcblk1p2", "/system");掛載/dev/block/mmcblk1p2 ,返回指針"/system函數(shù)名稱:is_mounted函數(shù)語法:is_mounted(mount_point)參數(shù)t解:mount_point 字符串,檢查是否已經(jīng)掛載的掛載點作用解釋:檢查文件系統(tǒng)是否掛載返 回值:掛載成功則返回掛載點,失敗返回null函數(shù)示例:函數(shù)名稱:unmount函數(shù)語法:unmount(mount_point)參數(shù)t解:mount_po

5、int 字符串,要解除掛載的掛載點作用解釋:解除文件系統(tǒng)掛載返回值:解除掛載成功則返回掛載點,失敗返回 null函數(shù)示例:unmount("/system"); 卸載 /system 分區(qū)函數(shù)名稱:format函數(shù)語法:format(fs_type, partition_type, location)參數(shù)t¥解:fs_type 字符串,數(shù)據(jù)為"yaffs2"或"ext4"partition_type 字符串,"MTD"或"EMMC"location 字符串,分區(qū)(partition)或

6、 驅(qū)動器(device)作用解釋:格式化為指定的文件系統(tǒng)函數(shù)示例:format("MTD", "system");格式化 system 分區(qū)函數(shù)名稱:delete函數(shù)語法:delete(file1, file2,fileN)讀書破萬卷下筆如有神參數(shù)t解:字符串,要刪除的文件作用解釋:刪除一個文件。最少指定一個文件;多個文件可以做為多個參數(shù)指定函數(shù)示例:delete("/data/zipalign.log");刪除文件 /data/zipalign.log函數(shù)名稱:delete_recursive函數(shù)語法:delete_recursiv

7、e(dir1, dir2,dirN)參數(shù)ttw :字符串,要遞歸刪除的目錄作用解釋:刪除文件夾及其包含的所有內(nèi)容。最少指定 函數(shù)示例:delete_recursive("/data/dalvik-cache");1個目錄;多個目錄可以做為多個參數(shù)指定刪除文件夾 /data/dalvik-cache函數(shù)名稱:show_progress函數(shù)語法:show_progress(frac, sec)參數(shù)t解:frac 進度完成數(shù)值Sec 總秒數(shù)作用解釋:顯示在Recovery 系統(tǒng)中進度函數(shù)示例:show_progress(0.1, 10);show_progress下面的操作可能進

8、行10s,完成后進度條前進 0.1(也就是函數(shù)名稱:set_progress函數(shù)語法:set_prograss(frac)參數(shù)t解:frac 進度數(shù)值函數(shù)示例:10%)函數(shù)名稱:package_extract_dir函數(shù)語法:package_extract_dir(package_path, destination_path)參數(shù)t解:package_path 字符串,升級包內(nèi)要提取的目錄destination_path 字符串,提取文件的目標(biāo)目錄作用解釋:提取升級包內(nèi)目錄中的所有文件到指定的目標(biāo)目錄函數(shù)示例:package_extract_dir("system", &q

9、uot;/system");釋放RO庖里system文件夾下所有文件和子文件夾至/system函數(shù)名稱:package_extract_file函數(shù)語法:package_extract_file(package_path)或 package_extract_file(package_path, destination_path)參數(shù)t解:package_path 字符串,升級包內(nèi)要提取的文件destination_path 字符串,提取文件的目標(biāo)目錄作用解釋:提取升級包內(nèi)的單個文件到指定的目標(biāo)目錄函數(shù)示例:package_extract_file("my.zip"

10、, "/system");解壓 RO胞里的 my.zip 文件至 /system函數(shù)名稱:file_getprop函數(shù)語法:file_getprop(file, key)參數(shù)t¥制星:fileKey作用解釋:在格式"key"="value" 函數(shù)示例:字符串,要檢查的文件名字符串,返回數(shù)據(jù)中的文件的鍵名字的文件中取得文件屬性值函數(shù)名稱:symlink函數(shù)語法:symlink(target, srcl, src2,,srcN)參數(shù)t解:target 字符串,符號鏈接的目標(biāo)srcX 字符串,要創(chuàng)建的符號鏈接的目標(biāo)點作用解釋:在創(chuàng)

11、建新的符號鏈接之前,要斷開已經(jīng)存在的符號鏈接函數(shù)示例:symlink("toolbox", "/system/bin/ps");建立指向 toolbox 的符號鏈接 /system/bin/ps函數(shù)名稱:set_perm函數(shù)語法:set_perm(uid, gid, mode, filel, file2,,fileN)參數(shù)t: uid 用戶 ID(user id)Gid 用戶組 ID(group id)Mode 權(quán)限模式(permission mode)fileX 要設(shè)置許可的文件 (file to set permission on)作用解釋:設(shè)置單個

12、文件或一系列文件的權(quán)限,最少指定 1個文件,前4個參數(shù)是必須的函數(shù)示例:set_perm(0,2000,0550, "system/etc/init.goldfish.sh");設(shè)置手機 system 中的 etc/init.goldfish.sh 的用戶為 root ,用戶組為shell ,所有者以及所屬用戶組成員可以進行讀取和執(zhí)行操作,其他用戶無操作權(quán)限)這里0代表用戶為root2000 代表用戶組為 shell我們來說明0550這組數(shù)據(jù),這組數(shù)據(jù)的最后三位550 ,分別代表所有者組用戶其他用戶”的權(quán)限,也就是我們在 RE管理中用戶群組其他”三行。 我們以XXX來表示這

13、三組權(quán)限,其中:X=4讀的權(quán)限X=2寫的權(quán)限X=1執(zhí)行的權(quán)限我們必須首先了解用數(shù)字表示的屬性的含義:0表示沒有權(quán)限,1表示可執(zhí)行權(quán)限,2表示可寫權(quán)限,4表示可讀權(quán)限,然后將其相加。所以數(shù)字屬性的格式應(yīng)為3個從0到7的八進制數(shù)。例如,如果想讓某個文件的屬主有“讀/寫"二種權(quán)限,需要把4(可讀)+2(可寫)= 6(讀/寫)。若要rwx屬性則4+2+1=7 ;若要rw-屬性則4+2=6 ;若要r-x屬性則4+1=5 常用修改權(quán)限的命令:Set_perm 0 0 0600Set_perm 0 0 0644Set_perm 0 0 0700雙x(只有所有者有讀和寫的權(quán)限)雙X(所有者有讀和寫的

14、權(quán)限,組用戶只有讀的權(quán)限)雙X (只有所有者有讀和寫以及執(zhí)行的權(quán)限 )Set_perm 0 0 0666Set_perm 0 0 0777雙x (每個人都有讀和寫的權(quán)限)雙X (每個人都有讀和寫以及執(zhí)行的權(quán)限)函數(shù)名稱:set_perm_recursive函數(shù)語法:set_perm_recursive(uid, gid, dirmode, filemode, dir1, dir2,dirN)參數(shù)t: uid 用戶 ID(user id)Gid 用戶組 ID(group id)Dirmode 指定 目錄內(nèi)的目錄的權(quán)限Filemode 指定 目錄內(nèi)的文件的權(quán)限dirX 要設(shè)置權(quán)限的目標(biāo)作用解釋:設(shè)

15、置單個目錄或一系列目錄的里面的所有文件的權(quán)限,最少指定1個目錄,5個參數(shù)都是必須的函數(shù)示例:set_perm_recursive 0 0 0755 0644 SYSTEM:app;設(shè)置手機 system/app文件夾及其中文件的用戶為root ,用戶組為root ,app文件夾權(quán)限為所有者可以進行讀、寫、執(zhí)行操作,其他用戶可以進行讀取和執(zhí)行操作,其中的文件的權(quán)限為所有者可以進行讀寫操作,其他用戶可以進行讀取操作 函數(shù)名稱:getprop函數(shù)語法:getprop(key)參數(shù)t解:key 字符串,想要系統(tǒng)返回的屬性作用解釋:這個函數(shù)是用來返指定的屬性的值。它是用來從 ps文件中

16、查詢手機的信息的函數(shù)示例: 函數(shù)名稱:write_raw_image函數(shù)語法:write_raw_image(file, partition)參數(shù)t¥解:file 字符串,要讀取的Img源文件Partition 字符串,要寫入 Img 文件的目標(biāo)分區(qū)作用解釋:這個函數(shù)是用來寫Img文件到分區(qū)函數(shù)示例:write_raw_image("/tmp/boot.img", "boot")讀書破萬卷下筆如有神將yaffs2 格式的boot包直接寫入 boot分區(qū)函數(shù)名稱:apply_patch函數(shù)語法:apply_patch(srcfile, tgtfi

17、le, tgtshal, tgtsize, sha1_1, patch_1,,sha1_x, patch1_x)參數(shù)t¥解:srcfile 字符串,要打補丁的源文件 (要讀入的文件)Tgtfile 字符串,補丁文件要寫入的目標(biāo)文件tgtshal 字符串,寫入補丁文件的目標(biāo)文件的shal哈希值sha1_x 字符串,要寫入目標(biāo)文件的補丁數(shù)據(jù)的shal哈希值patch1_x 字符串,實際上應(yīng)用到目標(biāo)文件的補丁作用解釋:這個函數(shù)是用來打補丁到文件 函數(shù)示例: 函數(shù)名稱:apply_patch_check函數(shù)語法:apply_patch_check(file, sha1_1,sha1_x)參數(shù)

18、t解:file 字符串,要檢查的文件sha1_x 要檢查的哈希值作用解釋:檢查文件是否已經(jīng)被打補丁,或者能不能被打補丁。需要檢查"applypatch_check "函數(shù)調(diào)用的源代碼函數(shù)示例: 函數(shù)名稱:apply_patch_space函數(shù)語法:apply_patch_space(bytes)參數(shù)t解:bytes 檢查的字節(jié)的數(shù)字作用解釋:檢查緩存來確定是否有足夠的空間來寫入補丁文件并返回一些數(shù)據(jù)。 函數(shù)示例:函數(shù)名稱:read_file函數(shù)語法:read_file(filename)參數(shù)t解:filename 字符串,要讀取內(nèi)容的文件名作用解釋:這個函數(shù)返回文件的內(nèi)容函

19、數(shù)示例: 函數(shù)名稱:sha1_check函數(shù)語法:sha1_check(data) 或 sha1_check(data, sha1_hex,,sha1_hexN)參數(shù)t將W: data 要計算sha1哈希值的文件的內(nèi)容-必須是只讀文件格式sha1_hexN 文件數(shù)據(jù)要匹配的特定的十六進制sha1_hex 哈希值字符串作用解釋:如果只指定data參數(shù),這個函數(shù)返回data參數(shù)的十六進制sha1_hex 哈希值字符串。其他參數(shù)用來確認(rèn)你檢查的文件是不是列表中的哈希值的一個。它返回匹配的哈希值,或者在沒有匹配任何哈希值時返回空。函數(shù)示例: 函數(shù)名稱:ui_print函數(shù)語法:ui_print(msg

20、1,msgN)參數(shù)t解:msg 字符串,要處理過程中輸出給用戶的信息作用解釋:在腳本運行的時候,在控制臺顯示的信息。最少要指定1個參數(shù),你可以指定額外的msg參數(shù),并且它們會連接起來輸了函數(shù)示例:ui_print("It's ready!");屏幕打印 It's ready!函數(shù)名稱:run_program函數(shù)語法:run_program(prog, arg1, ., argN)參數(shù)t解:prog 字符串,要執(zhí)行的程序argN 字符串,要執(zhí)行的程序的運行參數(shù)作用解釋:以指定的參執(zhí)行程序讀書破萬卷 下筆如有神函數(shù)示例:run_program("/system/xbin/installbusybox.sh");

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論